カテゴリ | |
---|---|
サマリ | エラーメッセージ中の絶対パス名 |
バージョン | 1.4.3 |
投稿者 | なお |
状態 | 完了 |
投稿日 | 2004-08-12 (THU) 02:02:06 |
セキュリティ上の要件で、例えば下記のようなURLをアクセスした時、表示されるエラーメッセージにローカルホストの絶対パス名が表示されるので、セキュリティ上好ましくない、という意見が私の周りで出てきました。これはPukiWikiの問題では無いように思うのですが、対応策とか考えられるのでしょうか?
http://www.hoge.org/dirs/rules.ini.php
rules.ini.php はたぶんPukiWikiを知っていれば誰でも分かる名前尚で、確実にインストールされているローカルディレクトリがばれてしまう、という点が問題にされています。
このような問題について、どなたかご意見いただけないでしょうか。
これは、確かに問題かもしれませんね(^^; とりあえず的なパッチはこんな感じかな
@@ -6,9 +6,11 @@ // // PukiWiki setting file +if (!defined('DATA_DIR')) { exit; } +
他にもいっぱいありそうですね(^^; init.php とか・・・
PHPの設定でエラーメッセージを表示させているのが問題なのでは。PHPのマニュアルのdisplay_errorsの所に「本番のシステムでは使用すべきではありません。」とあります。http://www.php.net/manual/ja/ref.errorfunc.php
レンタルサーバなどは上記のdisplay_errorsはデフォルトで0なのかな?*1と考えるときちんと対処すべきでは?
とりあえず、dev:BugTrack/652へ上げておきました。
これは半分は運用レベルの話だと思います。例えば.htaccess が使えるならば、ファイル単位のアクセス制限をかけることができると思います。
もう半分はPukiWiki 1.4.3 に改善の余地があります。現在開発中の 1.4.4 では、Webサーバー外に露出させる必要があるファイルを除く全てのデータを、Webサーバー内に隠蔽する事が簡単にできる様になっています(実装済み)。
お試しになるなら、1.4.4rc1 をどうぞ :) ソースが読める方限定ですが。
あ、極端な対応策として、rules.ini.php などの名前を変更してしまうという事もできますね。運用的には .htaccess などの方をお勧めしますけど・・・
dev:BugTrack/652の方に、defineとdieを使った方法も書いておきました。お好みでどうぞ :)
みなさま、どうもありがとうございました。PHPのエラーメッセージは確かにその通りですね。チャレンジしてみます。
ところで、.htaccessのご指摘ですが、ベーシック認証をしていても、絶対パスが分かってしまうことが問題だという理解です。仲間内にも見えてしまわない方が望ましいという党考え方を指摘されています。
こんにちは。うまく行きそうですか? 私の言っていた .htaccess での処理はベーシック認証ではなく、ファイル単位のアクセス制限ですよ :)
henohenoさん、誤解してました。ごめんなさい。下記のような記述を言われているでしょうか。こうしてしまうと、rules-ini.php ファイルがアクセスできなくなって、PukiWikiが動かなくなってしまう気がしますが、意図を理解できていないでしょうか。申し訳ありません。
<File rules-ini.php> order deny,allow deny from all </File>
ユーザー側でそのファイルにブラウザでアクセスできなくなるだけです。pukiwiki.php にアクセスしてしまえば、あとはサーバー側が rules.ini.php にローカル的にアクセスするだけなので関係ないです。
報告しておきます:
みこさんのコードを追加すると、HTMLとしては下記のコードが送られてくるだけで表示は何もされなくなりました。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META http-equiv=Content-Type content="text/html; charset=shift_jis"></HEAD> <BODY></BODY></HTML>
henohenoさんの .htaccess でのファイルのアクセス制限は、上記の設定だと Internal Server Error となってしまいます。
さばぞうさんの PHPの設定ファイルを修正する方法は、/etc の下にあったファイルを修正してみたのですが、変化ありませんでした。他にはテスト用のものくらいしか見当たらなかったので、PHPの設定をもう少し調べてみます。
php.ini修正後、Webサーバを再起動しました?
なおさん、そのような時は、apacheのエラーログを読んで Internal Server Error の原因を確認してください。その後、上記の記述と、例えば「.htaccess」のページやApacheのマニュアルにおけるディレクティブの記述を見比べてみて下さい。
はい、わたしの追加コードはとりあえずの対策だけなのでその程度です。(他にも、pukiwiki.ini.php などにダイレクトにアクセスしても同様の動きをするとおもいます。)