参照(閲覧)制御の実装方法について考える

このページは、PukiWiki/WikiFarm から派生してきました。



./wiki/ が公開されていたら

データディレクトリが公開された状態であれば、閲覧権限もなく、参照できる状態となっています。この状態を理解した上で、どのような実装を行えば良いのだろうか?ということを考えてみたいと思います。

#secret

freeze更新禁止
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

コメント



*1 例えば他のアプリケーションで./data/ディレクトリ以下にデータをまとめて収めているように。
*2 非公開でよい./wiki類と、公開されてなきゃいけない./skin, ./attach類の分けとかも。
*3 ./public_html は、ウェブサーバの公開ディレクトリ以下に全部収容するケースがあることを考えれば、違う名前が適当だと思います。あくまでも配置上のイメージです。
*4 公開ディレクトリしかスペースをもらえない人で.htaccessも置けない人は断念するとか、制約もあるでしょうが。。。
*5 ./atatch, ./backup, etc
*6 pukiwiki.orgでは、これらのディレクトリ以外は.htaccessで外部からの閲覧を規制しています。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-02-14 (土) 21:52:40
Site admin: PukiWiki Development Team

PukiWiki 1.5.3+ © 2001-2020 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.129 sec.

OSDN