BLOG ENTRY

ヌルバイト攻撃の対策(PHP)

php


ヌルバイト攻撃とは、リクエスト文字列に%00(ヌルバイト)を含めることで、バリデーションを通り抜ける攻撃手法。


書籍からの情報を元に、ヌルバイト攻撃の対策方法(PHP)をメモ。



1、Webアプリケーション先頭でのヌルバイト削除法

[PHP]
function sanitize($arr) {
if(is_array($arr)) {
return array_map('sanitize' , $arr);
}
return str_replace("\0" , "" , $arr);
}
$_GET = sanitize($_GET);
$_POST = sanitize($_POST);
$_COOKIE = sanitize($_COOKIE);
[/PHP]



2、直前サニタイズ法

ファイル名や外部実行コマンドとしてのセキュリティチェックコード(拡張子チェックなど)の直前に、
ヌルバイトを削除する。
[PHP]
$data_file = str_replace("\0" , "" , $_GET['data_file']);
if(substrt($data_file , -3) == 'dat') {
readfile($data_file);
}
[/PHP]
ファイル指定に階層構造が必要なければ、リクエスト変数の受け取り時点(チェック前)にbasename()を使うことで、Directory Traversal攻撃への対策も同時に処理できる。
[PHP]
$data_file = basename($_GET['data_file']);
[/PHP]






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


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

No related posts.

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

  • type:ピンバック [ ]

    WRITE COMMENT


    (required)


    (required)


    (required)

    MENU

    veltica creative of