我正在处理一个将数据发布到URL的HTML表单。我也使用Jquery获取查询字符串参数,并将它们添加到我发布到URL的数据中。有没有办法防范XSS攻击?任何HTML编码插件或内置函数?
答案 0 :(得分:9)
jigfox的答案并非100%正确。有时,您可以直接在JavaScript中使用URL中的数据。即使您清理了链接服务器端,也并不意味着其他网站无法使用恶意URL链接到您的网站。
我使用此网址来检查我的网站: https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet
答案 1 :(得分:4)
保护jQuery代码免受XSS攻击是非常困难的,因为许多jQUery函数/方法都是XSS接收器。请参阅this question作为示例。
编写纯JavaScript时,必须注意对DOM所做的更改以及传递给" eval()"," new Function()",& #34;的setTimeout()"和" setInterval()"。
在编写jQuery代码时,您必须另外注意传递给以下函数的时间,因为它们可能会调用eval()或对DOM进行更改:
一旦传递了一个你无法控制任何这些函数的字符串,就会有XSS的风险。
此外,此列表可能不完整。这只是我通过jQuery代码快速搜索得出的结果。
答案 2 :(得分:1)
您无法保护XSS免受jSS攻击。 XSS漏洞发生在您的服务器软件中。请查看Exploit_scenarios以更好地了解XSS的工作原理。
如果输出用户生成的内容未经过滤,则输出用户生成的数据的网站可能存在XSS漏洞,因为用户可以使用恶意代码创建<script/>
标记。但是在发送到客户端(浏览器)之前,您需要在服务器上对此进行过滤。