API接口访问频次限制 / 网站恶意爬虫限制 / 网站恶意访问限制 方案
2019-12-17 19:56
99 查看
API接口访问频次限制 / 网站恶意爬虫限制 / 网站恶意访问限制 方案
采用多级拦截,后置拦截的方式体系化解决
1 分层拦截
1.1 第一层 商业web应用防火墙(WAF)
直接用商业服务
传统的F5硬件,不过现在用的很少了 云时代就用云时代的产品,典型代表 阿里云 web应用防火墙
1.2 第二层 API 网关(API Gateway)层
API 网关(API Gateway)
kong为代表的开源 API 网关 实现 openresty + lua 自实现 windows平台 安全狗、云锁 实现
1.3 第三层 应用层
用Redis内置lua脚本
redis是块砖,哪里需要哪里搬 redis内置了lua引擎,2.6版本后你可以编写一段lua脚本,完成逻辑判断流程
常见的有对某维度计数器法 对某维度令牌桶法 维度的概念比如就是IP或者IP+模块等, 多个字段合并成一个维度
本方案满足绝大多数应用层的限流需求 当然也可以自己用应用层程序实现,前提是redis+lua满足不了你的需求
2 后置拦截
基本的套路其实很简单,从日志这里计算出恶意IP,恶意用户,再给其他系统用 分控的基本思想也是这样的
已经在用ELK日志系统:可以用ES中定时查询高频IP,送入WAF做拦截 已经在用流计算系统:flink和spark等流计算系统计算出高频恶意IP,用户等
然后就可以应用这些计算出的结果数据做限制,封禁等
3 一+二+三+后置协同工作
第一层Waf当然有拦截,但是对于新IP他不会马上生效, 会有几分钟的时间才会拦截 特别是恶意爬虫IP池一上,大量新IP就来了,第一层会放过来,如果只是一层,结果就是数据库慢查询告警叮叮叮
配合上二层 三层 一层一层拦截 如果没有精力搞二层,那么第一层用买的,第二层不做,搞第三层
后置拦截的结果可以作为长期封禁使用 这种多次拦截的策略和多级缓存的概念是不是很像 多层次的拦截保障源站监控告警静悄悄
面向C端的产品被爬虫,被恶意访问的概率会大很多 面向B端的网页也不是没有风险 面向B端的API也有限流的需求
相关文章推荐
- 恶意访问网站的策略处理,IP访问限制
- 恶意访问网站的策略处理,IP访问限制
- 再谈“ASP.NET网站限制恶意访问”
- 巧用GOOGLE访问被限制的网站
- Redis小案例(一):实现网站访问频率限制
- schema_reference: 由于 accessExternalSchema 属性设置的限制而不允许 'file' 访问, 因此无法读取方案文档 '***.xsd'。
- 当心!假冒戴尔邮件引诱用户访问恶意网站
- 用php代码限制国内IP访问我们网站
- 我是怎么处理其他网站恶意爬虫博客园的,希望大家喜欢
- USB KEY身份认证管理系统及网站访问控制方案(一)
- 多线程访问网站的爬虫的问题
- 防止恶意解析 - 禁止通过ip直接访问到网站
- Apache2.4使用require指令进行访问控制–允许或限制IP访问/通过User-Agent禁止不友好网络爬虫
- 前端设置特定IP对网站的访问限制
- Apache防恶意解析—禁止直接通过IP访问网站
- 防恶意解析,禁止用IP访问网站的Apache设置
- 网站静态化方案--首次访问静态化
- 网站的访问ip中找出进行频繁连接的ip,并对这些ip的访问频率进行限制。
- 如何限制访问一些网站
- 简单爬虫,突破IP访问限制和复杂验证码,小总结