• 締切済み

PHPでのWaning

PHPでのWaning PHPファイルにてメッセージ抑止をしたいのですが、どのようにすれば良いのでしょうか? 「ディレクトリトラバーサル」脆弱性とのご指摘を頂いております。 http://xxxx.com/sys/dl.php?file=01(正常なURL) http://xxxx.com/sys/dl.php?file=00(ディレクトリ内に無いURL) 上記のように​http://xxxx.com/sys/dl.php?file=00と言うページが無く (あったとしても見られても問題ない) http://xxxx.com/sys/dl.php?file=01以外のアドレス(?file=)以降、ユーザーがURLの打ち間違えをしたら Waning: file(~):failed to open stream:No such file or directory in....................../utl.php on line 139 が出ます。 上記「Waning」では無く、他のメッセージ(表示URLは変えずにhtmlで出力)を出したいのです。 utl.phpの139行目は $utl = new Utl(); $template = $utl->readTemplate($template_file); $template_file テンプレートファイルへのパス 返り値 $template テンプレートファイル(SJIS) */ function readTemplate($template_file){ (139行目)foreach(file($template_file) as $v){ $template .= $v; } $template = mb_convert_encoding($template, "EUC-JP", "auto"); return $template; } /* どうぞ、よろしくお願い致します。

みんなの回答

  • fire--
  • ベストアンサー率49% (146/293)
回答No.2

個別のメッセージの処理という点について言えば、No.1の回答で良いと 思います。 それ以外に一般ユーザーが利用する環境において、phpの エラーメッセージをそのまま出してしまうのは、内部の仕組みが もれてしまう危険があります。 そのため、なんらかの方法で、利用者がシステムの管理者かそうでないかを 区別し、error_reporting()やini_set()の設定を変えてメッセージを 抑止するのが良いでしょう。それぞれの関数は、 http://www.php.net/manual/ja/ で説明を見ることができます。

hhhharusan
質問者

お礼

ありがとうございます。 error_reporting()やini_set()は、どのように書けば良いのでしょうか? 宜しければ、ご伝授お願いできませんか?

hhhharusan
質問者

補足

書き忘れておりました。 関係ないかも知れませんが、 携帯端末専用です。 PCからは.htaccessにて制限しております。 よろしくお願い致します。

  • SNo0001
  • ベストアンサー率16% (21/125)
回答No.1

file_existsを使って、ファイルの有無を確認し、 その結果で処理を分ければよいかと思います。

hhhharusan
質問者

お礼

ありがとうございます。 でも、やり方がわかりません(^^;

関連するQ&A