JDBC PreparedStatement へのパラメータの受け渡し
Java プログラムの検証クラスの作成には、多くの場合データベースへのクエリが含まれます。次のコードは、パラメータを指定した PreparedStatement を使用してテーブルから特定の行を選択しようとします:
public class Validation { // ... public Validation(String userID) { try { // ... statement = con.prepareStatement( "SELECT * from employee WHERE userID = " + "''" + userID); // ... } catch (Exception ex) { // ... } } // ... }
ただし、SQL ステートメントの形式が正しくないため、このコードは機能しない可能性があります。
解決策:
パラメータを PreparedStatement に正しく渡すには、setString() を使用します。 method:
statement = con.prepareStatement("SELECT * from employee WHERE userID = ?"); statement.setString(1, userID);
このメソッドは、最初のパラメータ (?) の値を指定されたユーザー ID に設定します。これにより、ステートメントが適切にフォーマットされていることを確認し、悪意のある SQL コードがクエリに挿入されたときに発生するセキュリティ上の脆弱性である SQL インジェクションを防止します。
PreparedStatements の使用方法の詳細については、Java チュートリアルを参照してください。
以上がJDBC PreparedStatement にパラメータを安全に渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。