
書籍からの情報を元に、任意のファイルを読み込み実行するインクルード攻撃の対策方法(PHP)をメモ。
対策1を施した後で2、3のどちらかを状況に応じて選択する。
php.iniに以下を記述
allow_url_fopen = off
上記の場合、すべてのPHPスクリプトがURL fopen機能を利用できなくなる。
httpd.confへの記述例
<directory /home/myhome/> php_admin_flag allow_url_fopen off </directory>
上記の場合、指定ディレクトリ内にあるPHPスクリプトのみがURL fopen機能を利用できなくなる。
ファイル名にbasename()をかけてからincludeする
<?php include(dirname($_GET['skin_file']));
3、ホワイトリスト法
開いて良いファイルをあらかじめ配列にしておき、その配列になければ処理を中断させる
<?php if(!in_array($_GET['skin_file'] , (許可ファイル名の配列)))exit; include ($_GET['skin_file']);
詳しいことはPHPサイバーテロの技法に書かれてます。この本はすごくためになりました。著者の方に感謝。
その他14種類の脆弱性についてはこちらで一覧確認できます。
No related posts.
[...] 9 => インクルード攻撃 , [...]
type:ピンバック [ ]