sql >> データベース >  >> RDS >> Mysql

複数のクエリを使用する場合のJavaおよびMySQLでのSQLインジェクション

    もちろん、データベースとドライバーの組み合わせを現在の実装から複数のリクエストをサポートするものに変更すると、(間違いなく)人々が忘れてしまうような休止状態のセキュリティホールがアクティブになります!

    悪意のある悪意のあるシナリオを無視すると、上記は引用文字などの通常のデータの挿入で問題が発生します。つまり、上記は単に機能しません 特定のデータセットの場合(クレンジング/エスケープなどを除く)。単に機能的な目的で修正します。

    PreparedStatement 、およびこのためのデータ挿入方法( setString() )など

    例:

       PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES
                                         SET SALARY = ? WHERE ID = ?");
       pstmt.setBigDecimal(1, 153833.00)
       pstmt.setString(2, "Insert what you like here")
    

    setString()メソッドは、エスケープ/インジェクションの問題なしに任意の文字列をサポートします。



    1. SQLServerストアドプロシージャからのAPIの呼び出し

    2. フォーマットを失うことなくtextareaからMySQLデータベースにテキストを挿入する

    3. Windows10にOracleSQLDeveloper 18.2をインストールするにはどうすればよいですか?

    4. リソースとしてのMySQLおよびPHPパラメータ1