首页 > 解决方案 > javascript 中的 (alert(1),"") 到底是什么

问题描述

我尝试做 google gruyeres XSS 挑战(http://google-gruyere.appspot.com/part2),在存储的 AJAX XSS 挑战中,他们有以下 JSON 响应的代码部分:

all <span style=display:none>"
+ (alert(1),"")
+ "</span>your base

有趣的部分是:(alert(1),"")

根据提供的解决方案,将返回空字符串。根据我的测试,alert(1) 仍然被执行。

这是某种函数的简写,还是在 JS 中会调用什么?
为什么它执行警报,然后返回空字符串?

非常感谢您的帮助!

最好的问候,
罗尔夫

标签: javascriptajaxxss

解决方案


这是逗号运算符。代码执行alert(1),丢弃它的返回值,然后计算""。由于这是表达式中的最后一项,因此返回其值,即空字符串。

我链接的教程描述如下:

JavaScript 中的逗号运算符会计算其每个操作数。它返回最后一个操作数的值。使用逗号运算符添加多个表达式。


推荐阅读