BLOG ENTRY

セッション変数等を外部から操作する変数汚染攻撃の対策(PHP)

php

書籍からの情報を元に、セッション変数等を外部から操作する変数汚染攻撃の対策方法(PHP)をメモ。



対策1、2、3、4を並行して実施する。



1、ブラックリスト法



$_GET、$_POST、$_COOKIE内に、 ” _SESSION ” , ” _GET ” , ” _COOKIE ” など、特定のキーが見つかった時点で処理を中断する。
[PHP]
foreach(array($_GET , $_POST , $_COOKIE) as $arr) {
if (!empty($arr['_SESSION']) || !empty($arr['_COOKIE']) || !empty($arr['_SERVER']) || !empty( $arr['_ENV']) || !empty($arr['_FILES']) || !empty($arr['_POST']) || !empty($arr['_GET']) || !empty($arr['_GLOBALS']))exit;
}
[/PHP]



2、ホワイトハウス法



受け取る可能性のあるリクエスト変数名をピックアップしておき、プログラム先頭でそれ以外のリクエスト変数をすべてunsetする。



3、register_globals on 依存ソースコードの抜本的書き換え



$_GET等のスーパーグローバル変数をforeach() や extract()で展開している部分を削除し、$_GET[(index)]といった形式に書き換える。



4、register_globalsをoffにする。



php.iniの設定でregiste_globalsをoffにする。





詳しいことはPHPサイバーテロの技法に書かれてます。この本はすごくためになりました。著者の方に感謝。





その他14種類の脆弱性についてはこちらのページで一覧確認できます。

No related posts.

  • name:PHPで脆弱性の少ないセキュアなアプリを作るために実装時に意識すること | Web&MUSICブログQUALL
  • date:2008/04/14
  • [...] 7 => 変数汚染攻撃 , [...]

  • type:ピンバック [ ]

    WRITE COMMENT


    (required)


    (required)


    (required)

    MENU

    veltica creative of twitter