JDBC PreparedStatement にパラメータを渡す
データベースから特定の行をフェッチしてユーザー資格情報を検証しようとしましたが、問題が発生しました。 Java コード。目的は、Validation クラスのコンストラクターに渡されたパラメーターに基づいて行を選択することです。ただし、現在のアプローチは失敗します。
問題は、SQL クエリでの userID パラメータの設定方法にあります。パラメータ値をクエリ文字列に直接挿入すると、ステートメントが SQL インジェクション攻撃に対して脆弱になります。さらに、不適切なフォーマットにつながる可能性があります。
これを解決するには、PreparedStatement クラスの setString() メソッドを利用する必要があります。この手法により、ステートメントが適切にフォーマットされるだけでなく、SQL インジェクションからも保護されます。
正しいコードは次のようになります。
statement = con.prepareStatement("SELECT * from employee WHERE userID = ?"); statement.setString(1, userID);
本質的には、ユーザー ID をパラメータ化する必要があります。値を取得し、setString() メソッドを使用して設定します。これにより、データベース操作のセキュリティと信頼性が強化されます。
Java で PreparedStatement を効果的に使用するための包括的なガイドについては、Java チュートリアルを参照してください。
以上がユーザー認証のためにパラメータを JDBC PreparedStatement に安全に渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。