動的なファイルインクルードを行う時のセキュリティ対策

PHP | 2008-05-08  19:42:07

動的なファイルインクルードを行う時のセキュリティ対策

例:
$file = $GET[‘file’];
include($file);
?>

この場合、外部にあるファイルや、Webに公開されていないローカルのファイルを読み込む脆弱性があります。


$file = basename($GET[‘file’]);
include($file);
?>

basename()関数を使うことで、ファイル名の部分のみを取得するので、
上記の脆弱性はなくなります。

allow_url_fopenの設定をoffにすることでも対策にはなりますが、
設定に依存するコードは環境が変わった場合に、脆弱性となってしまうため、
basename()関数を利用したほうがよい。

※PHP5プログラミング エキスパート編から参照

Leave a Reply

Theme by othico