將參數傳遞給JDBCPreparedStatement
在JDBC 中,準備好的語句用於透過一次編譯語句來有效率且安全地執行SQL語句,使用不同的參數多次執行它。將參數傳遞給準備好的語句時,確保正確設定參數至關重要,以防止 SQL 注入攻擊和語句格式錯誤。
問題說明
提供的程式碼嘗試根據傳遞給 Validation 類別建構子的 userID 參數從資料庫表中選取一行。但該語句缺乏參數化,導致執行不正確,有潛在的 SQL 注入漏洞。
解
要正確傳遞 userID 參數,請使用 setString() 方法設定查詢參數的值。這可確保語句格式正確並防止 SQL 注入攻擊。
statement = con.prepareStatement("SELECT * FROM employee WHERE userID = ?"); statement.setString(1, userID);
透過遵循此方法,提供的程式碼將根據指定的 userID 參數從資料庫表中正確選擇行。
最佳實務
以上是如何安全地將參數傳遞給 JDBCPreparedStatement?的詳細內容。更多資訊請關注PHP中文網其他相關文章!