秒杀项目学习笔记 第七章————安全优化

此处输入图片的描述

秒杀项目学习笔记 第七章————安全优化

1.秒杀接口地址隐藏
2.数学公式验证码(防止机器人,延迟请求分散并发量)
3.接口限流防刷(限制访问次数)

7-1 秒杀接口地址隐藏

思路:秒杀开始之间,先去请求接口 获取秒杀地址

1.接口改造,带上PathVariable参数
秒杀按钮不是秒杀,而是先异步请求"/miaosha/path",生成path写入缓存,并且返回path

2.拿到path之后返回,异步请求miaosha,传入path,验证是否合法

3.秒杀收到请求,先验证PathVariable

7-2 数学公式验证码

思路:防止机器人,分散用户的请求

1.添加生成验证码的接口
前端:添加 验证码图片展示模块,结果输入模块。设置好显示与隐藏逻辑。
在进入goods_ detail时候会异步访问,请求验证,得到返回的验证码渲染展示出来。

后端:

2.在获取秒杀路径的时候,验证验证码
3.SriptEngine使用(JDK1.6 添加)

7-4 接口限流防刷

一般解决方法,加入一个访问次数缓存。每次访问一次+1,超过5次返回错误。

7-5 通用化的 接口限流防刷

通过 自定义拦截器 来限制流量。
这样在所需限制的方法上添加。@AccessLimit(seconds=5, maxCount=5, needLogin=true)

1.创建注解@AccessLimit,内部添加 所需的限制对象。
2.AccessInterceptor extends HandlerInterceptorAdapter。自定义拦截器类,继承适配器类,重写preHandle方法。在其中
通过HandlerMethod拿到注解,获得对外接口的限制属性。对这些属性,来做一些redis缓存。
没每访问一次就给缓存加一次

Powered by Hexo and Hexo-theme-hiker

Copyright © 2017 - 2019 Jae's blog All Rights Reserved.

UV : | PV :