PHP 5.1.6、4.4.4 及更早版本中,當選擇 UTF-8 編碼時,htmlspecialchars() 和 htmlentities() 存在潛在的緩衝區溢出漏洞,可能被利用繞過字元編碼進而觸發 eval() 注入。
「在我們尋找 htmlspecialchars() 和 htmlentities() 的漏洞以繞過特定字元編碼來利用另一應用中的 eval() 注入洞時,發現其實現包含一個可能的緩衝區溢出,當選擇 UTF-8 字元集時可被觸發。」
htmlspecialchars($str, ENT_QUOTES, 'UTF-8', false) 並嚴格驗證輸入長度。