问题
网络黑产猖獗,爬虫便是其手段之一。爬虫爬取你辛苦运营的用户、客户数据,以低廉的价格将其出售。这会极大伤害用户隐私,更让用户对产品失去信任,危害绝对不容小觑。对于很多互联网公司,信息甚至是其核心资产。所以无论是为保护用户隐私,亦或自身利益,防爬虫都志在必行。
不那么有效的手段
- 针对请求的useragent,refer等做限制。这些字段可以通过抓包工具随意修改,对于有心之人基本无效
比较有效的手段
反爬虫没有确定的方法,但有相对确定的原则:在对正常用户干扰最小的情况下最大限度地提高爬虫成本
需要明确爬虫和人类的区别,并针对这些区别制定方案。通常的做法有(成本从低到高):
后端:
- 限制ip、账号、接口频率,尤其是敏感数据接口(用户信息、客户信息、订单、收藏夹等),限制维度要多。
- 返回假数据迷惑爬虫
- 设置爬虫陷阱,如正常访问看不到的链接
- 维护一份账号、ip、代理等的黑名单
- 根据具体业务分析访问行为是否合理
前端:
1.前端代码安全的情况下(如app混淆),做相关加密(MD5,nonce防重复攻击),验证请求
2.各种验证码
当然,反爬逻辑越复杂,成本也越高,需要酌情考虑。