在準備好的語句中參數化表名稱
SQL 注入是一個嚴重的安全漏洞,當原始使用者輸入直接插入資料庫查詢時會發生這種漏洞。為了減輕這種風險,準備好的語句提供了一種執行參數化查詢的安全性方法。但是,問題來了:我們可以參數化表名來防止 SQL 注入嗎?
答案:否
Prepared statements 只允許參數綁定到「值」 」 SQL 語句的一部分。表名不能參數化,因為它們決定查詢的有效查詢的有效性。 PDO)可能允許使用佔位符替換錶名稱。 FROM 'mytable' 傳送到資料庫,這是無效的。注入對於使用者提供的表名稱,建議:
使用允許的白名單表名並在使用$mytable 變數之前對其進行檢查。起來,確保$mytable變數在使用前經過清理。
以上是可以在準備好的語句中參數化表名來防止 SQL 注入嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!