用于修改URL的XSS攻击

时间:2016-12-08 09:00:15

标签: javascript html spring-mvc xss

我们的一位客户在我们的应用程序中报告了XSS问题,说我们没有清理请求值。他直接在浏览器中添加了一个脚本,并将其作为警报消息执行。

以下是示例网址:

https://domain.com?tool=param1&toolName=param2&category=param3&locale=param4&currency=HH&theme=Theme"/><script>alert(1)</script>

在上面的URL中,最后脚本标记添加了警告消息。这是测试XSS攻击的正确方法吗?为什么他必须直接修改URL并测试它。

如果这是正确的,我如何通过添加一些客户端脚本来解决问题。服务器端框架是Spring MVC。

更新

我可以使用c:out tage来防止这种攻击吗?我正在使用JSP页面和JSTL tage。

2 个答案:

答案 0 :(得分:0)

不确定XSS,但如果您将dom元素指定为html直接从您的查询字符串(或未经验证的文本框)读取的值,则可能会发生这种情况。你可以只编码url或url参数:

var param = encodeURIComponent(paramFromQueryString);

答案 1 :(得分:-1)

您可以通过chartOptions['data']['rows'][0] = ["0-1","2-3","4-5", "6 ", "7 "]; // Spaces appended to these chartOptions['data']["groups"] = [["0-1","2-3","4-5","6 ", "7 "]]; 标题来解决问题 - 请参阅https://content-security-policy.com/并且未启用`script-src directive'unsafe-inline'和'unsafe-eval'。这将是一个快速的工作。

但是,您应该尝试删除该查询字符串的注入到页面中而不使用html转义整个内容。如果没有服务器呈现的代码,则很难建议需要更改的内容。