防止XSS但允许所有字符?

时间:2010-06-16 00:59:42

标签: php xss

如何阻止XSS但允许使用任何字符?就像我可以在像<html><body><h1>Test</h1></html>这样的论坛上发布HTML代码,但它不会在浏览器中呈现为html?我怎么能这样做,所以它不转换PHP中的字符?

3 个答案:

答案 0 :(得分:2)

将字符串传递给htmlspecialchars()函数:

// Outputs HTML as literal characters
echo htmlspecialchars('<html><body><h1>Test</h1></html>');

答案 1 :(得分:0)

您可以使用htmlentitieshtmlspecialchars安全地输出字符串。 htmlentities更彻底,因为它编码所有实体,而htrmlspecialchars只转换括号,引号和符号字符。

例如,它将<更改为&lt;,其由浏览器显示为&lt;符号而不是被解释为HTML标记的开头。

答案 2 :(得分:0)

一个有趣的方法是DOM + Tidy - Source