[英]What does htmlentities with ENT_QUOTES and UTF-8 do?
我一直使用簡單的htmlentities($_POST['string']);
清除任何 XSS 攻擊的數據。 最近我看到人們使用這個:
htmlentities($_POST['string'], ENT_QUOTES, 'UTF-8');
僅使用htmlentities()
的優點或目的是什么。
也不知道它是否相關,但我總是在我的頁面頂部使用元 UTF-8。
如果數據被替換為 HTML 屬性,則需要ENT_QUOTES
,例如
echo '<input type="text" value="' . htmlentities($string, ENT_QUOTES) . '">";
這可確保對引號進行編碼,因此它們不會過早終止value="..."
屬性。
如果您的頁面使用 UTF-8 字符集,則UTF-8
是必需的,因為默認是使用 ISO-8859-1 編碼。 這些編碼需要匹配,否則用戶會看到奇怪的字符。
人們說明字符編碼和實體引號的原因是
the encapsulation characters ' and " are encoded (ENT_QUOTES)
and 'UTF-8' encoding flag expressed as:
htmlentities($_POST['string'], ENT_QUOTES, $encoding="UTF-8");
or
htmlentities($_POST['string'], ENT_QUOTES, "UTF-8");
在整個聲明中。
在過濾器中表達字符編碼的主要原因是為了維護輸入數據的幀引用。 如果傳輸編碼由於傳輸干擾或惡意傳輸數據包更改而發生變化,則過濾器將用零填充丟失的數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.