すべての変数を一度にエスケープするには:
$escapedGet = array_map('mysql_real_escape_string', $_GET);
すべての変数を現在の名前空間に抽出するには(つまり)$foo = $_GET['foo']
:
extract($escapedGet);
ただし、この最後のステップは実行しないでください。必要はありません。値を配列のままにしておくだけです。変数を抽出すると、名前の衝突や既存の変数の上書きが発生する可能性があります。これは、面倒でバグの原因であるだけでなく、セキュリティ上のリスクもあります。また、@ BoltClockが言うように、またはに固執し$_GET
ます$_POST
。また、@ zerkmsが指摘してmysql_real_escaping
いるように、データベースクエリで使用されることを想定していない変数には意味がなく、さらに問題が発生する可能性があります。
これは特に良い考えではないことに注意してください。昔からの恐ろしいPHPの慣習であったmagic_quotesとglobal_varsを転生させているだけです。mysqliまたはPDOを介してバインドされたパラメーターを持つプリペアドステートメントを使用し、またはを介して値を使用し$_GET
ますfilter_input
。http://www.phptherightway.comを参照してください。