反爬经验与理论基础

40次阅读

共计 983 个字符,预计需要花费 3 分钟才能阅读完成。

一、反爬体系要做什么
完整的反爬体系有三大部分工作要做:感知识别、策略分析、监控封禁。
(一)感知识别:

数据支撑:爬虫指纹、设备指纹、风险 UA、IP 库等,不同端指纹的 mapping 等。
数据感知,什么人,通过什么方式,用什么爬虫,在什么时间,爬取了我们什么内容。

(二)策略分析:

事前策略:通过技术手段,在源头使攻击者无法爬取。
事后策略:指感知到有爬虫事件后,采取的封禁、验证码等组合策略。

(三)识别封禁:

离线识别:通过数据埋点监控,可离线分析爬虫情况,实时性差,但对业务无任何影响。
在线识别:在线检测服务,在业务关键节点,调用在线检测服务,实时感知爬虫情况。
离线阻断:离线分析后,根据策略筛选出要封禁的 IP、UA、Session、userid 等,调用封禁服务统一封禁。
在线阻断:在线检测到爬虫行为后,直接调用封禁服务阻断爬虫。

二、反爬策略有哪些(一)事前策略:

js 计算:js 添加简单的数学计算,要求浏览器计算结果之后,返回给后端校验计算结果,来识别是否是爬虫行为。

js 生成动态 url:

生成动态参数:访问页面,先返回 js 脚本,js 生成一个新参数,加入原请求中,再访问,才可得到数据。
生成动态地址:访问页面,先返回 js 脚本,js 生成新接口地址,再访问新接口,才可得到数据。

js 生成动态页面:动态生成 js 标签
因为 js 对用户是可见的,所以要尽量提升攻击成本,要写难懂的 js,比如大量使用 eval 和 goto,比如做 js 混淆、js 压缩等。

(二)事后策略:

阈值封锁

IP 维度:常见,但有两个缺陷:容易误伤普通用户,容易被绕过。
Session 或 uid 等维度:需要考虑不同业务的 Session 或 uid 逻辑,是否唯一稳定?是否非空?
UA 维度:误杀非常严重,除非能准确识别爬虫 UA。
设备指纹:PC、APP、小程序。

投毒:命中相应策略后,后端给前端反回一定比例的假数据。
验证码:图形、划动、短信、人脸、声纹。
加密:app 参数加密,PC 小程序前后端加密。前端加密需要做 js 混淆等处理。

三、反爬架构什么样

数据支撑平台:通过埋点、采集等方式接入各类维度的基础数据和第三方指纹 sdk,封装成统一的数据输出形式。数据输出可以接口、db、log 等不同形式。
数据分析平台;输入支撑数据,输出爬虫画像。
策略分析平台:输入爬虫画像,采取不同策略,输出策略分析结果。
上报阻断平台:输入策略分析结果,上报给运维,做阻断。

正文完
 0