首頁 > 資料庫 > mysql教程 > 如何安全地將參數傳遞給 JDBCPreparedStatement?

如何安全地將參數傳遞給 JDBCPreparedStatement?

Patricia Arquette
發布: 2024-11-25 00:31:10
原創
544 人瀏覽過

How to Safely Pass Parameters to a JDBC PreparedStatement?

將參數傳遞給 JDBCPreparedStatement

為 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()方法:

statement = con.prepareStatement("SELECT * from employee WHERE  userID = ?");
statement.setString(1, userID);
登入後複製

該方法將第一個參數(?)的值設定為指定的使用者ID。它確保語句格式正確並防止 SQL 注入,這是一種將惡意 SQL 程式碼注入查詢時出現的安全漏洞。

有關使用PreparedStatements 的更多信息,請參閱 Java 教程。

以上是如何安全地將參數傳遞給 JDBCPreparedStatement?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板