如何在 jQuery 选择器中执行 Javascript

How to execute Javascript inside jQuery selector

我有这样的代码:

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

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

谢谢

您认为 "this code is vulnerable to DOM XSS" 的依据是什么?

根据这个答案,jQuery 的旧版本是这样,但 1.6.3 之后的任何版本都不是:

这肯定是XSS问题。查看这篇描述攻击者可能如何处理的文章:https://ttmm.io/tech/jquery-xss/

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

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