BLOG ENTRY

インクルード攻撃の対策(PHP)

php

書籍からの情報を元に、任意のファイルを読み込み実行するインクルード攻撃の対策方法(PHP)をメモ。







対策1を施した後で2、3のどちらかを状況に応じて選択する。



1、allow_url_fopenをoffにする



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機能を利用できなくなる。



2、ブラックリスト法



ファイル名に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.

  • name:PHPで脆弱性の少ないセキュアなアプリを作るために実装時に意識すること | Web&MUSICブログ QUALL
  • date:2008/04/26
  • [...] 9 => インクルード攻撃 , [...]

  • type:ピンバック [ ]

    WRITE COMMENT


    (required)


    (required)


    (required)

    MENU

    veltica creative of twitter