繁体   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