防止使用動態表名進行SQL 注入
對動態表名的SQL 注入的擔憂源於操縱表名的可能性執行惡意命令。但是,使用 mysql_real_escape_string 或 PDO 不足以實現此目的。
mysql_real_escape_string
mysql_real_escape_string 旨在透過轉義包含字串值的引號來保護資料。但是,它無法解決反引號字符,這在動態表名稱中至關重要。
PDO
PDO 在提供資料清理的同時,並未將此保護擴展到動態表
解決方案
在這種情況下防止SQL 注入的最佳策略是完全避免動態表名。或者,如有必要,應執行嚴格的驗證,以確保動態表名稱與透過 SHOW TABLES 查詢取得的有效值清單相符。
附加說明
在處理動態表名時必須謹慎行事,並充分了解資料清理技術的局限性,以有效防範 SQL 注入漏洞。
以上是如何在SQL中安全地使用動態表名來防止注入攻擊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!