参照(閲覧)制御の実装方法について考える†
このページは、PukiWiki/WikiFarm から派生してきました。
- 余談。pukiwiki.php で閲覧認証かけても ./wiki/ が公開されてると意味ないので、DATA_DIRはごっそり上位へ移動できるべきという考え方もあるんじゃないかと。./data/wiki, ./data/bacup, ./data/diff など。そうするとWikiFarm的にもやりやすいですかね~。
- Farmで検討すべきことじゃないでしょ。そもそも漏れているなら、そこから正さないとと思いますよ。つまり、現実装に問題があるので、Farm の検討を待たずして考えないと駄目よねぇ。ということではありませんか?-- upk
- すみません、端折り発言で。そういう対策が必要なら現実装でも設定で上位に移動させればいいだけの話で、何も問題はありません。漏れてるよって言った覚えはないのであしからず。ただ、./wiki/が公開されてると意味ないの~と気づいて非公開にしたとして、でもdiffやbackupがそのままだったりするとどうよ?ってところから、その場合にどれがデータDirとして非公開ディレクトリ上に行くべきかという点では、データ関連だけをまとめといたら楽なんじゃん?という考え方もあるんじゃん?と思ったわけで。*1 ただの配置上の問題ですが、はじめからそういう設定であれば、ついでにWikiFarm的にやりやすいんじゃ?という程度のことです。実際、どれが共通でどれが個別でと考えながら設置しているもんですから。*2このページにふさわしくなかったならごめんなさい。断言されたので移動させたいんですが、適切なページがあれば教えてください。 -- morikawa
- ちょっと違うような?とも思いますが、PukiWiki/権限/参照 としました。-- upk
./wiki/ が公開されていたら†
データディレクトリが公開された状態であれば、閲覧権限もなく、参照できる状態となっています。この状態を理解した上で、どのような実装を行えば良いのだろうか?ということを考えてみたいと思います。
#secret†
というイメージで考えた際に、Webサーバが、データディレクトリに保存している
ファイルの拡張子(.txt)から、プレーンテキストという判断で、表示されてしまいます。この状態を、例えば、拡張子を .php として、その関数内に文書を封印するような
動きにすれば、URL を直接アクセスされても、表示されてしまうようなことは無いので、そういった逃げを行うのか?それとも、何か良いアイディアは無いか?ということを考えられればと思います。
収容ディレクトリ構成†
PukiWiki/WikiFarm から03/09/15時点で持ってきました。重複で申し訳ないですが変更があるかも知れないので。
./
│
BASE_DIR (default 農場)
││
│├─attach
│├─backup
│├─cache
││ └─html
│├─counter
│├─devel [B]
│├─diff
│├─face [B]
│├─image [B]
│├─plugin [B]
│├─schedule
│├─skin
│├─trackback
│└─wiki
│
BASE_DIR (別農場...)
││
│├─attach
│├─backup
│├─cache
││ └─html
│├─counter
│├─diff
│├─schedule
│├─skin
│├─trackback
│└─wiki
│
冒頭でmorikawaが言いたかったのは、上のようにあるディレクトリ構成を、例えば
.
|-- data
| |-- A
| |-- B
| `-- default
| |-- backup
| |-- cache
| |-- counter
| |-- diff
| `-- wiki
|-- lib
| |-- A
| |-- B
| `-- default
| `-- plugin
`-- public_html
|-- A
|-- B
`-- default
|-- attach
|-- face
|-- image
`-- skin
* A, Bが別農場です。defaultと同構成になる、下位部分を省略してあります。
というように*3分けてしまえば、ページ認証のようなケースでは楽なのでは?という意味です。 morikawa - 2003-09-15
作業として、前者の場合、各データディレクトリをBASE_DIRの数だけ一個一個配置移動等させる必要がありそうですが、後者だと./dataを移動させるだけでよいから楽なんでは?ということです。また実装する側も、配置上の問題*4にしておいた方が、色んな問題を抱えずに楽だと思います。あくまでもページ認証がかかっていたり ./wiki/ 等の公開しなくてもよいものを公開しないようにする場合のみの処置ですし。 morikawa - 2003-09-15
- Farm の機能を追加したとしても、PukiWiki を独立してたてること。は従来通りあるのだと思います。その上で、なぜ、Farm を考える上で、閲覧の認証を考慮すると、この構成云々になるのかが、よく理解できません。というのも、この構成で見たときに、プラグイン1つとっても、Farm 毎に異なって管理するメリットが分かりません(意味は分かりますけどねぇ)。そこまでするなら、独立してたてればよいのでは?と戻ってしまうわけですよ。なので、そもそもとしてデータが公開されていた場合における閲覧の権限についての問題提起なのだと思ったわけですけどねぇ。この構成じゃ、全く問題提起した意味が違うというわけなんですよねぇ。まぁ、閲覧の権限云々まで考えると、こういう構成にしておいたほうがという問題提起だったわけですよねぇ。なんか、私の問題と違っていたというのは理解できました。-- upk
- 長らくこっち放ったらかしで。。。
確かにupkさんの言う通り、閲覧などの権限の問題が絡むからというのが根本にあります。なぜ、Farm を考える上で、閲覧の認証を考慮すると、この構成云々になるのかについてですが、たとえば、BASE_DIR/ の下に全て*5があると、これら複数のデータ関連のディレクトリを非公開ディレクトリ配下へ移動させるとき、どう考えればいいでしょう?
まず、BASE_DIRは ./skin, ./image などの関係から公開しておかなければいけませんからBASE_DIRを非公開なところへ移動させるわけにはいきませんよね。そうすると ./wiki, ./backup, etc. だけを動かす必要があるんですが、その場合、Farm毎にある ./wiki, ./backup をどこに動かせばいいか、というのは問題になりませんか? BASE_DIR の外に出す場合、/ の外にもBASE_DIRを作らないと、行き場がなさそうに思います。そうであれば、Farm を考える上でこちらも考慮しておいた方がいいんでは?というのが発言の意図です。 -- morikawa
- plugin はFarm毎におかなくてもいいんでしょうね。Farmは、独立したWikiを立てるようなこととは違うというのはよく分かりました。 - morikawa
- 違った構成では、./wiki/FARM_NAME, ./backup/FARM_NAME, というのも考えられるかもしれません。 - morikawa
- ./skin、./imageだけでなく、./attachも公開しておかないとダメです。公開にしていないと、refプラグインで添付画像が表示できなくなります*6。 -- reimy
コメント†