PHP Security Blogでpreg_matchをフィルターとして使用する際の注意点について言及されています。 以下のような$_GET['var']をフィルタリングするスクリプトを考えます。 <?php $clean = array(); if (preg_match("/^[0-9]+:[X-Z]+$/", $_GET['var'])) { $clean['var'] = $_GET['var']; } ?> <?php $str_list = array( "OK" => "1234:XYZ", "OK_EOL" => "1234:XYZ" . PHP_EOL, "NG_1" => "1234:XYZ" . PHP_EOL . "aaa" ); foreach ($str_list as $k => $v) { if (preg_match("/^[0