【问题标题】:How to execute Javascript inside jQuery selector如何在 jQuery 选择器中执行 Javascript
【发布时间】:2016-03-25 21:14:44
【问题描述】:

我有这样的代码:

$('.' + InjectionPoint).removeClass('classname');

其中InjectionPoint 是最终用户控制的部分,显然这段代码容易受到DOM XSS 的攻击,但它真的可以利用吗?攻击向量应该是什么样的?

谢谢

【问题讨论】:

    标签: javascript jquery security dom xss


    【解决方案1】:

    您认为“此代码易受 DOM XSS 攻击”的信念是什么?

    根据这个答案,在旧版本的 jQuery 中确实如此,但在 1.6.3 之后的任何版本中都不是这样:https://stackoverflow.com/a/11170073/877682

    【讨论】:

    • 这是一个网络安全扫描程序报告了这个问题,但我认为你是对的,它不可被利用,但没有办法评估选择器内的表达式,即使只是为了开发目的
    【解决方案2】:

    这肯定会受到 XSS 的影响。查看这篇描述攻击者如何进行攻击的文章:https://ttmm.io/tech/jquery-xss/

    基本上,作者建议您使用 document.querySelectorAll() 而不是 jQuery 选择器函数。有人评论说这对于 jQuery 1.7 及更高版本来说不是问题,但不要引用我的话。

    一般来说,相信用户给你的东西从来都不是一个好主意。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-12
      • 1970-01-01
      • 1970-01-01
      • 2011-08-19
      • 1970-01-01
      • 2018-01-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多