ホームページ >データベース >mysql チュートリアル >JDBC PreparedStatement にパラメータを安全に渡すにはどうすればよいですか?
JDBC PreparedStatement へのパラメータの受け渡し
JDBC では、プリペアド ステートメントを使用して、ステートメントを 1 回コンパイルし、SQL ステートメントを効率的かつ安全に実行します。異なるパラメーターを使用して複数回実行します。プリペアド ステートメントにパラメータを渡す場合、SQL インジェクション攻撃やステートメントのフォーマット エラーを防ぐためにパラメータが正しく設定されていることを確認することが重要です。
問題の説明
提供されたコードValidation クラス コンストラクターに渡された userID パラメーターに基づいてデータベース テーブルから行を選択しようとします。ただし、ステートメントにはパラメータ化が欠けているため、不正な実行と潜在的な SQL インジェクションの脆弱性が発生します。
解決策
userID パラメータを正しく渡すには、setString() メソッドを使用します。クエリパラメータの値を設定します。これにより、ステートメントが適切にフォーマットされ、SQL インジェクション攻撃から保護されることが保証されます。
statement = con.prepareStatement("SELECT * FROM employee WHERE userID = ?"); statement.setString(1, userID);
このアプローチに従うと、指定されたコードは、指定された userID パラメーターに基づいてデータベース テーブルから行を正しく選択します。
ベスト プラクティス
以上がJDBC PreparedStatement にパラメータを安全に渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。