SQL インジェクションは、最も一般的なネットワーク攻撃手法の 1 つです。攻撃を実行するためにオペレーティング システムのバグを使用するのではなく、プログラミング中のプログラマの過失をターゲットにします。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 サイトの他の関連記事を参照してください。