之前写的几篇文章已经把一个快速开发脚手架基本搭建起来了,但是之前一致没有考虑安全问题,今天就抛砖引玉在框架中加入XSS防护,其实类似的还有很多,例如防SQL注入、安全字符校验等这些,本篇文章里就都实现了,后续会在框架中逐渐完善。
XSS在百度百科里的解释是:
XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中.
在MkFramework中实现防XSS攻击主要是通过Filter来实现,这里我们需要实现XssFilter、XssHttpServletRequestWrapper,核心的Xss防护功能都在这个装饰器Wrapper中,因为涉及到对HttpRequest内容的处理,所以必须要在装饰器类中进行处理,下面我们来看下代码。
首先定义一个继承自Filter的XssFilter,在Filter中将Xss过滤核心处理类XssHttpServletRequestWrapper的对象传递给servlet或controller类进行处理。
public class XssFilter implements Filter {
@Override
public void init(FilterConfig config) throws ServletException {
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOExcept