之前一直写的爬虫系列文章, 今天写一篇系统架构怎么防爬虫的技术文章。
为什么写这个呢, 最近有这方面的需求。 一些系统没做高级安全防护,有些时候不是没技术能力实现,更多是预算、时间成本,不是技术做不到。大家一定要明白这一点,付出的成本性价比是否合算,爬虫也一样。
东方财富用到了这一条,这个实施成本比较低。
2、请求头深度检测
User-Agent、Accept-Language、Referer等字段缺失或异常。其实这几个比较好伪装,一些爬虫初学者可能没注意。
:后台分析鼠标轨迹、点击间隔,生成风险评分(0.0~1.0),>0.8时触发二次验证
2、智能验证码分级触发
这个token生成机制分为2种,一种纯后端先生成,前端接口增加这个token传递,后端做对应的校验。 另外一种 前端通过混淆算法 通过timstamp、nonce等生成sign签名, 传递后端,后端用相同的方式校验合法性。 前后端如果之前有很好的封装,框架层通用代码做下处理即可实现。
举例:雪球,财联社
2、DOM随机化与数据混淆
<div class="r4nd0m_abc">)
<a href="/honeypot" style="display:none">),爬虫触发后自动封禁IP
2、流式计算与对抗训练
最后说一句,程序员何必去为难程序员。