XSS, 跨站脚本攻击, 简单来说, 就是非本站点的脚本被执行了。 关于XSS 的详细介绍和防御参考:
XSS(跨站脚本)攻击与预防 和 跨站脚本攻击(XSS)及防范措施。
本篇介绍在Java 项目中如何快速修复XSS 漏洞。本篇使用的是黑名单的方式, 对于非法字符进行转义。 黑名单的方式虽然不能完全的解决XSS的漏洞, 但是能有效的减轻攻击, 对于使用类似Coverity等代码静态扫描攻击扫描的漏洞, 修复之后就不会再报相关的警报了。
个别代码处理
如果整个项目中仅有几处被扫描出来存在XSS 攻击漏洞, 以基于Spring 项目的请求方法为例,下面的代码是存在XSS 漏洞的。
@RequestMapping("/unsafe")
public String unsafe(@RequestParam(required = false) String input) {
String s = "Hello";
s += input;
return s;
}
上面的代码中, 如果 input 包含了 <script>
的脚本语句的话, 则这个响应返回给请求方的浏览器端, 相关的脚本就有可能被执行。
解决方法就是对返