springboot反爬⾍组件kk-anti-reptile的使⽤⽅法
⼤家好,我是为⼴⼤程序员兄弟操碎了⼼的⼩编,每天推荐⼀个⼩⼯具/源码,装满你的收藏夹,每天分享⼀个⼩技巧,让你轻松节省开发效率,实现不加班不熬夜不掉头发,是我的⽬标!
今天⼩编推荐⼀款反爬⾍组件叫kk-anti-reptile,⼀款可快速接⼊的反爬⾍、接⼝防盗刷spring boot stater组件。
1. 系统要求
基于spring-boot开发(spring-boot1.x, spring-boot2.x均可)
需要使⽤redis
2. ⼯作流程
spring framework扩展点 kk-anti-reptile使⽤基于Servlet规范的的Filter对请求进⾏过滤,在其内部通过spring-boot的扩展点机制,实例化⼀个Filter,并注⼊到Spring容器FilterRegistrationBean中,通过Spring注⼊到Servlet容器中,从⽽实现对请求的过滤。
在kk-anti-reptile的过滤Filter内部,⼜通过责任链模式,将各种不同的过滤规则织⼊,并提供抽象接⼝,可由调⽤⽅进⾏规则扩展。
Filter调⽤则链进⾏请求过滤,如过滤不通过,则拦截请求,返回状态码509,并输出验证码输⼊页⾯,输出验证码正确后,调⽤过滤规则链对规则进⾏重置。
⽬前规则链中有如下两个规则
ip-rule
ip-rule通过时间窗⼝统计当前时间窗⼝内请求数,⼩于规定的最⼤请求数则可通过,否则不通过。时间窗⼝、最⼤请求数、ip⽩名单等均可配置
ua-rule
ua-rule通过判断请求携带的User-Agent,得到操作系统、设备信息、浏览器信息等,可配置各种维度对请求进⾏过滤3. 接⼊使⽤
后端接⼊⾮常简单,只需要引⽤kk-anti-reptile的maven依赖,并配置启⽤kk-anti-reptile即可。
加⼊maven依赖
<dependency>
<groupId>cn.keking.project</groupId>
<artifactId>kk-anti-reptile</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
4.配置启⽤ kk-anti-reptile
前端需要在统⼀发送请求的ajax处加⼊拦截,拦截到请求返回状态码509后弹出⼀个新页⾯,并把响应内容转出到页⾯中,然后向页⾯中传⼊后端接⼝baseUrl参数即可,以使⽤axios请求为例:
import axios from 'axios';
import {baseUrl} from './config';
sponse.use(
data => {
return data;
},
error => {
if (sponse.status === 509) {
let html = sponse.data;
let verifyWindow = window.open("","_blank","height=400,width=560");
verifyWindow.document.write(html);
ElementById("baseUrl").value = baseUrl;
}
}
)
;
export default axios;
5. 注意
apollo-client需启⽤bootstrap
使⽤apollo配置中⼼的⽤户,由于组件内部⽤到@ConditionalOnProperty,要在
application.properties/bootstrap.properties中加⼊如下样例配置,(apollo-client需要0.10.0及以上版本)
abled = true
需要有Redisson连接
如果项⽬中有⽤到Redisson,kk-anti-reptile会⾃动获取RedissonClient实例对象; 如果没⽤到,需要在配置⽂件加⼊如下Redisson连接相关配置
6.命中规则后
命中爬⾍和防盗刷规则后,会阻断请求,并⽣成接除阻断的验证码,验证码有多种组合⽅式,如果客户端可以正确输⼊验证码,则可以继续访问
7.结尾
以上就是springboot反爬⾍组件kk-anti-reptile的使⽤⽅法的详细内容,更多关于springboot反爬⾍组件kk-anti-reptile的资料请关注其它相关⽂章!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论