众多的XSS攻击冲击到我们的互联网环境,本篇文章想要通过filter的解决方案处理XSS攻击。
先来看下XSS是如何攻击
预防最好的方式是能够清理请求恶意的参数,如果评论如下方式
<div>A's Comments</div> <div> <script> <!-- This script will get all cookies and will send them to attacker's site. --> </script> </div>
就如同上述的方式,确实在现实中成真,这对于一个HTML文档是可以markup的是致命的危险。如果在script中的脚本被联合执行,那么XSS攻击就被执行,可以干任何事情。我们可以通过Servlet Filter 把输入的参数和特殊符号屏蔽。
这样的处理方式确实比较简单,只需要加密我们的参数集符合系统需要的规则,又不会侵害自身内部构件。一般都是采纳StringEscapeUtils of Apache Commons project 。
另一种方式是采用JSTL能够被系统渲染,类似于<,>,&,’,” 等进行转换
<div>A's comments</div> <div> <c:out value="${comments}" escapeXml="true" /> </div>