2010-06-16 58 views
0

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

+0

可能重复:// stackoverflow.com/questions/1996122/how-to-prevent-xss-with-html-php) – 2010-06-16 01:05:14

回答

0

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

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

2

通过htmlspecialchars()函数传递一个字符串:

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

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

[如何防止XSS与HTML/PHP?(HTTP的