何時避免使用預準備語句
防止 SQL 注入攻擊的常見做法是使用預備語句。但是,在某些情況下,準備好的語句可能不是最適合的選項。
在這種特定情況下,開發人員正在重新設計一個使用基本查詢(例如SELECT foo,bar FROM baz WHERE quux)的Web 應用程式= ? ORDER BY bar LIMIT 1. 這些查詢僅在每個頁面點擊時執行一次。此外,開發人員處於託管環境中,希望避免額外的伺服器負載。
考慮到這些因素,開發人員質疑是否有必要使用準備好的語句。
答案
要判斷是否應該避免準備好的語句,必須考慮準備好的語句提供兩個主要的好處:
在此特定場景中,開發人員並不關心查詢重用,因為每個查詢僅在每次頁面點擊時執行一次。因此,查詢重用的效能優勢可以忽略不計。
但是,注射預防方面仍然是一個問題。為了解決這個問題,開發人員可以考慮使用模擬準備語句。這些語句使用 PHP 函數來處理參考和參數替換,提供針對 SQL 注入的保護,而無需多次資料庫往返的開銷。
建議
基於資訊不過,建議避免使用準備好的語句,而是選擇模擬的準備好的語句。這種方法提供了針對 SQL 注入的保護,同時避免了真正準備好的語句會產生的額外資料庫往返。
以上是託管環境中的單執行查詢是否應該避免使用準備好的語句?的詳細內容。更多資訊請關注PHP中文網其他相關文章!