簡體   English   中英

帶有 ENT_QUOTES 和 UTF-8 的 htmlentities 有什么作用?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM