保护JQuery代码免受XSS攻击

时间:2010-06-25 15:40:36

标签: jquery xss

我正在处理一个将数据发布到URL的HTML表单。我也使用Jquery获取查询字符串参数,并将它们添加到我发布到URL的数据中。有没有办法防范XSS攻击?任何HTML编码插件或内置函数?

3 个答案:

答案 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进行更改:

  • 的jQuery()
  • $()
  • 。经过()
  • .append()
  • .appendTo()
  • 。之前()
  • html的()
  • .insertAfter()
  • .insertBefore()
  • .parseHTML()
  • .prepend()
  • .prependTo()
  • .replaceWith()
  • .wrap()
  • .wrapAll()
  • .wrapInner()

一旦传递了一个你无法控制任何这些函数的字符串,就会有XSS的风险。

此外,此列表可能不完整。这只是我通过jQuery代码快速搜索得出的结果。

答案 2 :(得分:1)

您无法保护XSS免受jSS攻击。 XSS漏洞发生在您的服务器软件中。请查看Exploit_scenarios以更好地了解XSS的工作原理。

如果输出用户生成的内容未经过滤,则输出用户生成的数据的网站可能存在XSS漏洞,因为用户可以使用恶意代码创建<script/>标记。但是在发送到客户端(浏览器)之前,您需要在服务器上对此进行过滤。