使用動態表名防止SQL 注入
針對防止SQL 注入的討論,有人建議使用PDO 或mysql_real_escape_string對於保護動態表名無效。然而,進一步分析揭示了這些建議在特定情況下的有效性。
mysql_real_escape_string 限制
雖然 mysql_real_escape_string 可以有效地轉義引號內的字串資料,但在處理動態資料時卻表現不佳。表名。轉義函數僅針對引號內的字符,使反引號字符保持不變。這種疏忽為攻擊者創造了一個漏洞,可以透過將結束反引號合併到其輸入中來執行 SQL 注入。
PDO 限制
與 mysql_real_escape_string 類似,PDO 不提供直接保護防止涉及動態表名的 SQL 注入。
建議方法
為了降低使用動態表名時SQL 注入的風險,強烈建議採用替代策略:
以上是如何在 SQL 中安全地使用動態表名來防止注入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!