Htmlentities或htmlspecialchars或stripslashes?

时间:2013-05-30 11:44:37

标签: php xss

我想使用PHP阻止我网站上的XSS攻击。

我知道有3种功能可以基本上防止这种攻击,但我不确定应该使用哪种功能。我之前已经看到过有关此问题的其他问题,但我没有得到关于这个问题的明确答案。

我应该使用哪一个,哪一个是你最好的,为什么?

2 个答案:

答案 0 :(得分:2)

如果在标签之间输出不受信任的数据,

htmlspecialchars htmlentities 将会受到保护,但如果输出是在JavaScript事件处理程序中,则无法保护。

使用此功能的方法是这样的:

echo htmlspecialchars($string, ENT_QUOTES, 'UTF-8');

看看OWASP XSS预防备忘单......

https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet

http://code.google.com/edu/security/index.html#videos

答案 1 :(得分:0)

他们都不能阻止攻击。 你只能限制伤害!

但是使用全部或仅使用一个不是问题,而是关于应用程序设计以及是否可以以结果下降到数据库级别的方式修改请求。

请参阅this - 这可能会让您了解XSS攻击的复杂性。