徳丸試験対策 - PHPの正規表現の種類
PHPで利用できる正規表現関数は ereg、preg、mb_eregの3つ
ereg
バイナリセーフではなくPHP5.3以降で非推奨 & PHP7.0以降では削除されている
⇨バイナリセーフ
「\0」「\x00」「%00」といったNULLバイトが含まれていても正しく処理できる関数のこと。
バイナリセーフでないということはNULLバイト攻撃を許す脆弱性の元になる
mb_ereg
様々な文字エンコーディングが利用可能
正規表現を使うとセキュリティ的に何がうれしいのか
プログラムの先頭でpregもしくはmb_eregによりNULLバイトを含む制御文字をチェックすることで、
文字種チェックとNULLバイトのチェックを同時に行える