V 友们有没有防止灰产爬虫的方法?

2020-04-24 11:08:40 +08:00
 zhuwd

公司平台每天都会被灰产爬到很多数据,用的代理池和大量真实用户帐号,模拟登录并直接请求接口,请教 V 友大佬有啥应对策略吗

7100 次点击
所在节点    程序员
55 条回复
xiaxichen
2020-04-24 13:47:20 +08:00
无解的。
rekulas
2020-04-24 13:47:20 +08:00
加 google 的选择验证码 连人都通不过 100% :)
zdnyp
2020-04-24 13:53:14 +08:00
都不考虑真实用户体验的吗?
xxx 真恶心,现在注册还要 xxx 验证;刷新了几遍网页一天不能访问;还有返回假数据的...;这些能拦住一些小白,受影响的还是普通用户。
反爬的目的在于爬虫难拿到数据,不是增加爬虫的访问难度。登录、验证、数据加密是常用手段,不打扰用户的前提下挡住大部分爬虫。
剩下的一部分高手,数据给他吧。
爬虫和反爬虫永远是攻防战,没有无坚不摧的防御也没有锋利无比的刀刃,博弈而已,看谁的代价更大。
augustheart
2020-04-24 14:02:47 +08:00
攻防攻防,静态的防是永远落后于动态的攻的。
顶多就是看谁耗死谁。
adminPUBG
2020-04-24 14:22:52 +08:00
@zdnyp 有道理,爬虫和发爬虫就是矛和盾的关系,也不存在一劳永逸的方法,说 IP 池的,我们现在用的 IP 池,一天能获取 200 多万不重复的 IP,重复调用能到 3000 多万次,而且这些 IP 都是普通的住宅 IP,有很多真实用户就是用的这些 IP,没办法在不影响正常用户的情况下封爬虫的,只能说你提高爬虫获取数据的成本,到它无路可图的地步,就像薅羊毛的一样,它成本高了,自然就不来薅你了,否则是防不住的。
rain0002009
2020-04-24 14:25:49 +08:00
突然想到像 puppeteer 这种真的拿个浏览器访问的 咋办呢
copymaster
2020-04-24 14:44:00 +08:00
吐假数据啊
a516307724
2020-04-24 14:50:29 +08:00
该做的小说网站都做了。然而。。。
fank99
2020-04-24 14:53:34 +08:00
此时路过了一名爬虫工程师。
DelayNoMay
2020-04-24 14:56:34 +08:00
此时路过了一名反反爬虫工程师
zary
2020-04-24 15:02:52 +08:00
1 、js 核心逻辑混淆、埋逻辑陷阱
2 、请求字段 RSA 、AES 加密
3 、针对频率封禁
4 、重要业务场景(登录注册)上验证码
zgzhang
2020-04-24 15:03:22 +08:00
@mrzx @zhuwd 常年从事安全风控工作,说一下几点建议:
1. 不要做 IP 维度的对抗,黑灰产的 IP 资源早已不是来源于代理 IP,细节请搜索秒拨机
2. 增加黑灰产获取新用户的难度,注册环境各种图灵测试,针对虚拟号段的打击等手段,解决了用户问题,就解决了一半问题
3. 针对存量垃圾用户可以返回结果投毒,裁剪,不建议直接拉黑
4. 风控策略要尽量后置多变,不要被摸清楚规律
5. 最后如果数据敏感 可以收集证据走法律途径
dearmymy
2020-04-24 15:12:00 +08:00
首先你要认识到没啥一劳永逸的方法。我大概说下我了解的。
1,如果是客户端的话可以做一些加密。但是网页基本没什么特别好的办法。js 加密就是效果也是一般,不过你说了对方是发包的。你 js 加密可以经常换换,也能恶心死他们。
2,限制 ip,账号手机注册,验证码,这些你基本可以放弃,ip 池子便宜的要死,手机接码网站也一大堆,验证码,高中没毕业的学个几天,就能搞个机器学习去识别,还影响用户体验。
3,还有一个恶心的办法,针对于发包来说,他们只会发关键的包。你可以在登录后的前端里插入一些小图片之类的,对这小图片进行检测。如果他没发这个请求,就默认他机器人。
4,作为搞逆向这么多年,有个很重要的规则,不要给对方明确反馈,最好能拉长反馈时间。比如你已经检测到了他是机器,就别百分百反馈给他获取接口失败,你可以随机反给他,比如 5 次反给他一次。让他不知道怎么回事。
攻防是长期事情,也没必要打死。。。。毕竟你们互怼的时候,既学习了技术,也创造了你俩岗位和 kpi 。要不你俩都得被裁
z888888cn
2020-04-24 15:22:32 +08:00
终极解决方法:看页面请先支付 1 毛钱。
viewsnake
2020-04-24 15:32:50 +08:00
@z888888cn 哈哈哈
kasper4649
2020-04-24 15:40:49 +08:00
@z888888cn 这个厉害了
eoo
2020-04-24 15:58:19 +08:00
@z888888cn 牛逼+1
mrzx
2020-04-24 16:45:40 +08:00
@adminPUBG 有一些不了解,忘解答。

地址池能获取 200 多万个不重复的 ip 地址,而且都是普通的住宅 ip,你指的是公网地址还是私网地址?
如果是私网地址,也不需要获取,随便定义即可。
如果是公网地址,难道这些地址平时都不在线的吗?而且很多 ipv4 地址都不够用,运营商都是搞大内网 nat 过去的。

从网络的角度考虑,你既然要收数据,总要回数据包吧,爬虫发过去的数据包源地址应该就是代理池里这些地址吧?
如果这些公网 ip 地址原本就已经被占用了,从路由层面怎么保证回到你的代理 ip 池这里呢?
mrzx
2020-04-24 16:50:45 +08:00
@zgzhang 搜了一下,秒拨机就是利用宽带账户提供的 pppoe 拨号机制,每次换一个公网 ip 地址吗,但是这种地址池普遍不是很大。
我做过运营商的项目,BRAS 的服务器(你可以理解成 pppoe 服务器)我都亲自配置过,也没见分配多大的 IP 地址池吗?
早起普遍都是 juniper e 系列设备,现在都换成了华为 me60 系列。。

难道秒拨机还有其他的方式制作?还是向运营商偷偷买了什么服务?
ClericPy
2020-04-24 16:54:21 +08:00
反爬虫就像 CSGO 的反作弊, 只要是免费的, 就有一群人本着 "学习" 的目的来尝试, 每次进游戏看到一群小号就烦

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/665594

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX