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

Sam*_*hid 4 php xss encode html-entities

我一直使用简单的htmlentities($_POST['string']);方法清除任何XSS攻击的数据。最近,我看到人们使用此方法:

htmlentities($_POST['string'], ENT_QUOTES, 'UTF-8');
Run Code Online (Sandbox Code Playgroud)

有什么优势或者利用经过短短的目的htmlentities()

另外也不知道它是否相关,但是我总是在页面顶部使用meta UTF-8。

Bar*_*mar 7

ENT_QUOTES 如果将数据替换为HTML属性,则需要此属性,例如

echo '<input type="text" value="' . htmlentities($string, ENT_QUOTES) . '">";
Run Code Online (Sandbox Code Playgroud)

这样可确保对引号进行编码,以免引号value="..."过早终止属性。

UTF-8如果您的页面使用UTF-8字符集,则是必需的,因为默认值是使用ISO-8859-1编码。这些编码需要匹配,否则用户将看到奇怪的字符。