文字列からすべての特殊文字を削除した場合、SQLインジェクションの可能性はありますか??(入力に特殊文字は必要ありません)
次のコードを使用して、すべての特殊文字を削除しています
$unsafe = $_GET["tag"];
$safe = preg_replace('/[^a-zA-Z0-9 ]/s', '', $unsafe);
$safe = mysql_real_escape_string($safe);
SQLインジェクションを行う可能性はまだありますか?
文字列からすべての特殊文字を削除した場合、SQLインジェクションの可能性はありますか??(入力に特殊文字は必要ありません)
次のコードを使用して、すべての特殊文字を削除しています
$unsafe = $_GET["tag"];
$safe = preg_replace('/[^a-zA-Z0-9 ]/s', '', $unsafe);
$safe = mysql_real_escape_string($safe);
SQLインジェクションを行う可能性はまだありますか?
を使用する場合mysql_real_escape_string
、「安全でない文字」を削除する理由はありません。すべての文字が安全になるためです。
ただし、mysql_*
正しく使用するのが難しいため、これらの関数はお勧めしません。PHP開発者は、代わりにPDOまたはmysqli_*
関数を使用することを推奨しています。PDOまたはmysqliでパラメーター化されたクエリを使用する方法については、この回答を参照してください。