1. 添加redis缓存功能
1.1 安装Redis
点击下载 redis-64.3.0.503.zip
下载后直接解压到自定义目录,运行cmd命令,进入到这个文件夹,在这个文件夹下运行下面命令,启动redis服务器
redis-server redis.windows.conf
运行下面命令进行测试: redis-cli
1.2 添加Redis依赖
compile("org.springframework.boot:spring-boot-starter-redis:1.4.5.RELEASE")
1.3 添加Redis配置信息
在application.properties
中添加
1 | spring.redis.host=127.0.0.1 |
1.4 创建RedisConfigurer
1 | @Configuration |
1.5 创建Redis常用方法
RedisService
1 | public interface RedisService { |
RedisServiceImpl
1 | @Service |
1.6 接口测试
创建RedisController
1 | @RestController |
setRedis
getRedis
2. 添加防止XSS攻击功能
2.1 什么是XSS
XSS攻击全称跨站脚本攻击,是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。
你可以自己做个简单尝试: 1. 在任何一个表单内,你输入一段简单的js代码:<script>for(var i=0;i<1000;i++){alert("弹死你"+i);}</script>
,将其存入数据库; 2. 在页面上一个div元素内直接展示第一步内存入的值,你会发现弹出框出现了;以上两个示例仅仅算是恶作剧,恶意用户能做的更多,如获取用户信息,进行“网络钓鱼”攻击等。应对XSS攻击的其中一个方式就是后端对输入内容进行过滤,输入内容里面的敏感信息直接过滤,如<script>
标签等。
2.2 添加Jsoup依赖
compile("org.jsoup:jsoup:1.10.2")
2.3 创建过滤器
创建filter
文件夹
创建过滤规则
1 | public class XssFilterUtil { |
重写请求参数处理函数,这是实现XSS过滤的关键,在其内重写了getParameter,getParameterValues,getHeader等方法,对http请求内的参数进行了过滤。
1 | public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper { |
添加过滤XSS请求的入口,在这里通过XssHttpServletRequestWrapper将HttpServletRequest进行了封装,filterChain.doFilter(xssRequest, response);保证了后续代码执行request.getParameter,request.getParameterValues,request.getHeader时调用的都是XssHttpServletRequestWrapper内重写的方法,获取到的参数是已经进行过标签过滤的内容,从而消除了敏感信息。
1 | public class XssFilter implements Filter { |
2.4 注册过滤器
1 | @Configuration |
2.5 接口测试
请求URL http://localhost:8080/redis/setRedis
请求参数 guluwa<a href=”http://www.baidu.com/a" onclick=”alert(“模拟XSS攻击”);”>ssssss