儘管 mysql_real_escape_string() 被廣泛使用,但它並不能免受 SQL 注入攻擊。
要求:資料庫連接必須使用易受攻擊的字元集,如big5、cp932、gb2312、gbk或sjis。
步驟:
結果:由於客戶端與伺服器編碼不匹配,查詢中包含未轉義的單引號,導致 SQL 注入成功。
mysql_real_escape_string() 中的錯誤: 中在早期的MySQL 版本中,即使客戶端知道連接字符編碼,無效的多字節字符也會被視為單字節以進行轉義。
PDO 漏洞: PDO 中的模擬準備語句是使用mysql_real_escape_string(),因此容易受到此攻擊。
安全做法:
以上是SQL注入可以使用字元集操作來繞過`mysql_real_escape_string()`嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!