ホームページ  >  記事  >  Java  >  JavaでSQLインジェクションを防ぐにはどうすればよいですか?

JavaでSQLインジェクションを防ぐにはどうすればよいですか?

藏色散人
藏色散人オリジナル
2019-04-30 09:37:3612337ブラウズ

SQL インジェクションは、最も一般的なネットワーク攻撃手法の 1 つです。攻撃を実行するためにオペレーティング システムのバグを使用するのではなく、プログラミング中のプログラマの過失をターゲットにします。SQL ステートメントを通じて、アカウントやアカウントなしでログインできます。データベースを改ざんすることさえあります。

JavaでSQLインジェクションを防ぐにはどうすればよいですか?

SQL インジェクションを防ぐための Java バックグラウンド メソッド:

1. プリコンパイルされたステートメント セットを使用します。 SQL インジェクションを処理するには、その setString メソッドを使用して値を渡すだけです:

String sql= "select * from users where username=? and password=?;
PreparedStatement preState = conn.prepareStatement(sql);
preState.setString(1, userName);
preState.setString(2, password);
ResultSet rs = preState.executeQuery();

2. 一重引用符 (')、セミコロン (;)、およびコメント記号 (--) を含むステートメントを正規表現で置き換えて、フォールトを防止します。 SQL インジェクション

public static String SQL(String str)
{
return str.replaceAll(".*([';]+|(--)+).*", " ");
}
userName=SQL(userName);
password=SQL(password);
String sql="select * from users where username='"+userName+"' and password='"+password+"' "
Statement sta = conn.createStatement();
ResultSet rs = sta.executeQuery(sql);

関連する推奨事項:「Java チュートリアル

以上がJavaでSQLインジェクションを防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。