3

文字列からすべての特殊文字を削除した場合、SQLインジェクションの可能性はありますか??(入力に特殊文字は必要ありません)

次のコードを使用して、すべての特殊文字を削除しています

    $unsafe = $_GET["tag"];
$safe = preg_replace('/[^a-zA-Z0-9 ]/s', '', $unsafe);
$safe = mysql_real_escape_string($safe);

SQLインジェクションを行う可能性はまだありますか?

4

1 に答える 1

6

を使用する場合mysql_real_escape_string、「安全でない文字」を削除する理由はありません。すべての文字が安全になるためです。

ただし、mysql_*正しく使用するのが難しいため、これらの関数はお勧めしません。PHP開発者は、代わりにPDOまたはmysqli_*関数を使用することを推奨しています。PDOまたはmysqliでパラメーター化されたクエリを使用する方法については、この回答を参照してください。

于 2013-03-05T20:35:16.603 に答える