使用axios发送post请求,请求参数如下:
{
"body": {
"name": "test-xss18",
"description": "<IMG src=javascript:alert('XSS')>",
}
}
在axios的拦截处进行监听,可以发现请求响应直接走向错误处理,理论上该请求不应该报错(非后台接口错误,因为请求并没有发到后台),走向正常的响应处理。
如果把请求数据中description
的值改为其他文本,则请求正常。但业务代码并没有做任何特殊处理,不知道axios源码里是否有特殊处理。
只要数据带上了可能存在XSS注入风险的文本就会出现该情况,比如<button>x</button>
正常,<button onclick="javascript:alert()">x</button>
报错
线上环境数据未能采集,本地调试时报错内容是504 (Gateway Timeout)
我觉得
axios
不应该会做这样的处理,你可以对https://www.lilnong.top/cors/1010000023025316
这个接口请求一下看看。