【发布时间】:2016-03-25 21:14:44
【问题描述】:
我有这样的代码:
$('.' + InjectionPoint).removeClass('classname');
其中InjectionPoint 是最终用户控制的部分,显然这段代码容易受到DOM XSS 的攻击,但它真的可以利用吗?攻击向量应该是什么样的?
谢谢
【问题讨论】:
标签: javascript jquery security dom xss
我有这样的代码:
$('.' + InjectionPoint).removeClass('classname');
其中InjectionPoint 是最终用户控制的部分,显然这段代码容易受到DOM XSS 的攻击,但它真的可以利用吗?攻击向量应该是什么样的?
谢谢
【问题讨论】:
标签: javascript jquery security dom xss
您认为“此代码易受 DOM XSS 攻击”的信念是什么?
根据这个答案,在旧版本的 jQuery 中确实如此,但在 1.6.3 之后的任何版本中都不是这样:https://stackoverflow.com/a/11170073/877682
【讨论】:
这肯定会受到 XSS 的影响。查看这篇描述攻击者如何进行攻击的文章:https://ttmm.io/tech/jquery-xss/
基本上,作者建议您使用 document.querySelectorAll() 而不是 jQuery 选择器函数。有人评论说这对于 jQuery 1.7 及更高版本来说不是问题,但不要引用我的话。
一般来说,相信用户给你的东西从来都不是一个好主意。
【讨论】: