ディレクトリトラバーサル

ファイル名に想定外のデータを入力することにより、任意のファイル内容を表示させる攻撃。
さらにPHPに関して言えば、include() や require() に入力データを与える場合、外部サーバにある任意のコードが実行される危険がある。


■対策

NULLバイトを取り除いた上で、次の全てを実行する。
  1. php.ini の allow_url_fopen を Off にし、外部ファイルの読み込みを禁止する。
  2. basename() によりパスを取り除き、ファイル名のみにする。
  3. 正規表現により、想定内の文字かどうかを調べる。(英数字のみであるか等)
  4. is_file() や is_readable() により、ファイルの存在確認を行う。

■注意



■メモ



○参考
2005年08月19日(金) 02:49:10 Modified by isamun3




スマートフォン版で見る