雖然addslashes() 的目的是轉義針對特殊字符,但它在提供針對特殊字符的全面保護方面有不足之處。 SQL注入攻擊。相較之下,mysql_real_escape_string() 透過解決更廣泛的有問題的字元來提供增強的安全性。
具體來說,mysql_real_escape_string() 在以下字元中加上斜線:
此增強的字元集確保不僅單引號和雙引號被轉義,就像使用addslashes( )一樣,而且其他潛在的惡意字元也被中和。
為了說明這種差異,請考慮以下範例:
如圖所示,mysql_real_escape_string() 透過防止執行精心設計的SQL 注入攻擊來提供更強大的保護,而addslashes() 會使系統容易受到攻擊。重要的是要承認 mysql_real_escape_string() 和addslashes() 都已被棄用並且不再建議使用。相反,應該採用參數化查詢來實現安全且高效的資料庫互動。
以上是mysql_real_escape_string() 如何在對抗 SQL 注入方面超越 addslashes()?的詳細內容。更多資訊請關注PHP中文網其他相關文章!