PHP/脆弱性リスト/メモ - yohgaki's wiki

脆弱性PHPの文字列型はバイナリセーフですが、OSのファイルシステムコールのファイル名引数はバイナリセーフではありません。C言語では\0が文字列の終端を表すため\0で文字列が終了したものとして扱われます。つまりコーディングによってはNULLバイト攻撃に脆弱になります。 回避策:substr($str, -1, 4)、preg_match('/ext$/', $str) でファイル名をチェックする...続きはこちら