[英]Can I use htmlspecialchars($email, ENT_QUOTES, 'UTF-8') instead of filter_sanitize_email()
我對htmlspecialchars()很有信心,可以如標題中所述清理用戶輸入的數據。 但是,為了清理電子郵件,我仍然可以代替FILTER_SANITIZE_EMAIL()使用它嗎? 如果我已經使用過FILTER_VALIDATE_EMAIL()
在用戶輸入上使用htmlspecialchars是一種防止XSS攻擊的方法,並且是一種在輸出數據時(而不是在保存數據時)安全的方法。
假設用戶提交了以下內容:
<span onclick="alert('evil script')">something that seems normal</span>
您可能希望完全按照用戶提交內容的方式保存內容。 但是,當您顯示它時,應該使用htmlspecialchars (或htmlentities )將一些特殊字符轉換為實體,以防止瀏覽器解釋它們。
在過濾器擴展中的功能之一上使用的FILTER_VALIDATE_EMAIL標志是一種驗證用戶數據的方法,並且這是保存用戶數據之前需要完成的過程。
有關防止xss的更多詳細信息,請參見此處
FILTER_SANITIZE_EMAIL
確保字符串是電子郵件地址。
htmlspecialchars
使字符串可以安全地插入HTML。
它們是完全不同的事物,在任何情況下都不能相互替代。
Provided I have already used FILTER_VALIDATE_EMAIL
然后,如果您已經驗證了字符串,那么該字符串將如何包含除電子郵件以外的其他任何內容。
如果即使驗證失敗也要輸出給定的電子郵件,則可以,您應該在電子郵件字符串上使用htmlspecialchars()
或僅通知它不是有效的電子郵件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.