エラーメッセージ中の絶対パス名を表示させたくない(from なお)†
- ページ: BugTrack
- 投稿者: みこ
- 優先順位: 普通
- 状態: 完了
- カテゴリー: その他
- 投稿日: 2004-08-12 (木) 09:59:45
- バージョン: 1.4.3
メッセージ†
official:続・質問箱/288からの抜粋です。
セキュリティ上の要件で、例えば下記のようなURLをアクセスした時、表示されるエラーメッセージにローカルホストの絶対パス名が表示されるので、セキュリティ上好ましくない、という意見が私の周りで出てきました。これはPukiWikiの問題では無い様に思うのですが、対応策とか考えられるのでしょうか?
http://www.hoge.org/dirs/rules.ini.php
Fatal error: Call to undefined function: format_date() in
/path/to/pukiwiki/rules.ini.php on line 20
rules.ini.php はたぶんPukiWikiを知っていれば誰でも分かる名前尚で、確実にインストールされているローカルディレクトリがばれてしまう、という点が問題にされています。
- 他にも init.php などをダイレクトにアクセスするとエラーが表示されます。php.ini の display_errors を 0 にすればいいという意見もでるかもしれませんが、レンタルサーバなどで調整できない方もでるでしょうからきちんと対処したほうがいいかとおもいます。 -- みこ
- official:続・質問箱/288で紹介したパッチは一時的なものなので(おそらくどちらもfunc.phpに依存)本来は他のphpアプリケーションみたいになにかの define で判別するほうがいいのかな? -- みこ
- こんばんは :) official:質問箱/288の方にもコメントさせていただきました。上記の様に「定義されている関数がないぜ」というエラーは、他のphpファイルに関数を定義して切り離している以上避けられないものなので、そうですね・・・分割しているファイルの上下を何かのフラグで囲み、それがtrueでないと中身を評価しない、といった細工がもし動くのであればいいのでしょうかね。 -- henoheno
- 特定のdefineが定義されていなかったら、die、というのならばもう少し軽いかな? -- henoheno
index.php あるいは pukiwiki.php
<?php
define('PUKIWIKI', ''); // <= これを追加
それ以外のphpファイル
<?php
if (! defined('PUKIWIKI')) die; // <= これを追加
/////////////////////////////////////////////////
// PukiWiki - Yet another WikiWikiWeb clone.
//
- この程度で良さそうです。お好みでどうぞ ;) -- henoheno
- すみません XD 質問箱/288 には DATA_DIR と書いていましたが、DATA_HOMEでないと lib/init.php はだめみたいです。 -- みこ
- ちなみに、影響のある(=そのまま実行してエラーの出る)ファイルは rules.ini.php lib/init.php lib/mbstring.php の3つです。 -- みこ
- うーん、というか現在配布されているPHPスクリプト全般にいえますが本来は直接アクセスされるもの以外*1はWebからはアクセスできない領域におくことを推奨するべきではないでしょうか。PukiWiki.org自体も、実はData領域はWeb公開領域の外に移動してたりするわけですし。 -- 白石
- コメントありがとうございます。基本的には私もそれを強く推奨したいですが、(1.4.4ではそれは非常に容易ですが)、1.4.3では難しいと思います。今回は発端となっている環境が1.4.3だったため、それに触れず、このBugTrackは簡単なソース改変による対応策を検討する場とさせていただきました。official:続・質問箱/288の方もご覧下さい :) -- henoheno