You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于JavaScript字符串中XSS注入特殊格式的技术疑问

问题解答

为什么test'-alert(2)-'hello能触发XSS?

看最终生成的JS代码:

var commentContent='test'-alert(2)-'hello';

这里的核心是JavaScript运算符的执行逻辑:

  • 减号-是算术运算符,它会先执行两边的表达式再进行运算。alert(2)是函数调用,不管它的返回值是什么(alert返回undefined),函数本身会先执行——也就是先弹出弹窗,之后才会处理'test' - undefined - 'hello'的运算(这部分运算结果是NaN,但这不影响alert已经执行了)。
  • 你用typeof检测到的是最终运算结果的类型(NaN属于number类型),但这和alert是否执行无关——alert在运算之前就已经跑完了。

为什么test'alert(2)'xss无效?

生成的代码会变成:

var commentContent='test'alert(2)'xss';

这是明显的语法错误:字符串'test'后面直接跟alert标识符,没有任何运算符或分隔符,JS引擎解析到这里就会抛出错误,整个脚本执行中断,alert(2)根本没机会运行。

内容的提问来源于stack exchange,提问作者Kenneth Cox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 07:25:58