ホームページ > データベース > mysql チュートリアル > JDBC PreparedStatement にパラメータを安全に渡すにはどうすればよいですか?

JDBC PreparedStatement にパラメータを安全に渡すにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-25 00:31:10
オリジナル
562 人が閲覧しました

How to Safely Pass Parameters to a JDBC PreparedStatement?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート