徳丸試験対策 - PHPの正規表現の種類

PHPで利用できる正規表現関数は ereg、preg、mb_eregの3つ

ereg

バイナリセーフではなくPHP5.3以降で非推奨 & PHP7.0以降では削除されている
⇨バイナリセーフ
「\0」「\x00」「%00」といったNULLバイトが含まれていても正しく処理できる関数のこと。
バイナリセーフでないということはNULLバイト攻撃を許す脆弱性の元になる

preg

文字エンコーディングUTF-8の場合のみ日本語が扱える

mb_ereg

様々な文字エンコーディングが利用可能

正規表現を使うとセキュリティ的に何がうれしいのか

プログラムの先頭でpregもしくはmb_eregによりNULLバイトを含む制御文字をチェックすることで、
文字種チェックとNULLバイトのチェックを同時に行える