理解差異:mysql_real_escape_string() 與addslashes()
雖然mysql_real_escape_string() 和addslashes()
雖然mysql_real_escape_string() 和addslashes() 和addslashes() 都用於轉義字元字串中的字元以防止SQL 注入攻擊,這兩個函數之間存在關鍵差異。mysql_real_escape_string()
專為MySQL 資料庫設計,該函數在以下字元:另一方面,addslashes() 只為三個字元加上斜線:
NUL
NUL:這些字符可用於在查詢中引入新行,可能會繞過驗證檢查。 >註解(--)
:這些字元可用於註解掉查詢的其餘部分,允許攻擊者執行任意SQL 指令。 ):mysql_real_escape_string() 可以防止使用addslashes() 所不能的其他轉義字符,例如as x1a.
建議為了獲得最佳安全性,建議避免同時使用mysql_real_escape_string() 和addslashes() ,而是使用參數化查詢或準備好的查詢聲明。更安全、更有效率。以上是mysql_real_escape_string()和addslashes()在防止SQL注入方面是否等效?的詳細內容。更多資訊請關注PHP中文網其他相關文章!