PHP:如何完全防止XSS攻击?

PHP:如何完全防止XSS攻击?,php,javascript,xss,Php,Javascript,Xss,如何在PHP中完全防止xss攻击?这是假设我不关心任何HTML标记或其他格式。只需运行strip_标签并使其完全安全就足够了吗 无论是htmlspecialchars()还是strip\u标记()都被认为是安全的,可以在HTML页面上清除用户输入以输出 相关的: 最简单的方法就是阻止任何用户输入HTML标记。如果去掉所有用户输入的标签()或htmlspecialchars(),则无法引入标签 如果您想允许有限的标记,那么可以使用类似bbcode的语法(找到一个PHP库来实现这一点应该不难,尽

如何在PHP中完全防止xss攻击?这是假设我不关心任何HTML标记或其他格式。只需运行strip_标签并使其完全安全就足够了吗

无论是
htmlspecialchars()
还是
strip\u标记()
都被认为是安全的,可以在HTML页面上清除用户输入以输出

相关的:


最简单的方法就是阻止任何用户输入HTML标记。如果去掉所有用户输入的标签()或htmlspecialchars(),则无法引入
标签


如果您想允许有限的标记,那么可以使用类似bbcode的语法(找到一个PHP库来实现这一点应该不难,尽管我自己从来没有这样做过,所以在这方面没有任何建议),或者您可以使用HTMLpurifier来限制允许用户输入的标记

@edem:XSS漏洞可能与语言无关。我知道,但PHP更容易受到攻击。没有简单的解决方案可以完全防止XSS。它很大程度上取决于上下文。取决于上下文。你是否在标签之间输出它,用css、javascript、onclick事件中的javascript字符串等。如果输入有html代码,则此函数可以工作,但如果输入包含如下代码:javscript:alert(1)此函数无法保护你免受xss…@Pouya现在这只是胡说八道。如果没有HTML元素,攻击者将如何执行javascript?@Pekka htmlspecialchars和其他类似的函数只是转换或删除HTML字符,但javascript可以在没有任何HTML字符的情况下执行!像这样的php代码是易受攻击的:“>告诉我这个输入:javscript:alert(1)execute or not!@Pouya yes,这将创建一个漏洞。不过这可能是另一种情况。上述方法在正文中输出HTML时提供了足够的安全性。