次のようにクエリを使用しています。
FROM users u INNER JOIN FETCH u.roles where u.password='" + password + "'" + " AND u.username='" + username + "'";
SQLインジェクションを防ぐために、正規表現を使用して「ユーザー名」をフィルタリングし、「^[a-zA-Z0-9]*$」などの文字のホワイトリストのみを許可し、「パスワード」フィールドにはそのようなチェックを使用していますなので、
if(password.indexOf("'") != -1) { Sql injection attack }
SQL インジェクション攻撃を成功させるために使用したチェックを攻撃者が回避する方法はありますか?
MySql v5.1を使用しています
ありがとう、