0

$_POSTデータをすばやくフィルタリングするために、このきちんとしたコードに出くわしました。

$post=array_map("filter_data",$_POST);

新しいバージョン (PHP 5.2 以降) に更新しました。

$post=array_map("filter_var",$_POST,array(516));  // 516 == 'unsafe_raw'

今、私は妄想的です。これは簡単すぎるようです。そう

  • すべてのデータに対してこれを行うべきではありませんか? post(ぎこちない神経質な目)
  • 一般的な、、または Cookie データunsafe_rawの正しいフィルタはどれですか?postget

主にSQLインジェクションを除去するために、一般的な消毒剤を探しているだけだと付け加えておく必要があります。メールアドレスか何かがあれば、後でもう一度フィルタリングできます。アイデア / 提案 / 恐ろしい視線はありますか?

4

1 に答える 1

2

SQL インジェクションを回避するには、値をクエリ文字列に挿入する直前に、データベースに適切な関数を常にmysql_real_escape_string使用してください。データベースに固有ではない一般的なフィルターは、何も保証せず、おそらくフィルタリングしすぎるだけです。

メールの検証など、それ以外の場合は、メール アドレスを保持する特定の変数に対して特定のフィルターを使用します。

FILTER_UNSAFE_RAWまた、数値ではなく、定数を使用してください。

于 2011-01-19T02:36:08.763 に答える