1
RJH 2020-06-10 10:01:08 +08:00
根据 IP 搞个限流试一下,例如每个 IP 每分钟请求 60 次之类,这个你可以根据业务来估算一下。
|
2
liamyoung 2020-06-10 10:31:17 +08:00 1
接口加签名
|
3
oldManPushCar666 OP 还有一个问题,这种刷我们接口的应该可以算不正当竞争,他们造成了我们的网站加载慢,甚至打不开的话,可以通过报网警可以抓到他们吗?
|
4
hicdn 2020-06-10 10:50:47 +08:00
公开 API 只能对 IP 限制频率
|
5
raynor2011 2020-06-10 10:51:38 +08:00
根据浏览器特征机器特征过滤垃圾流量
|
6
xooass 2020-06-10 11:07:44 +08:00 via Android
@oldManPushCar666 既然是匿名 IP 怎么抓,不是 xxx 督办的事情他们不会费劲去查 IP 的,那么容易被查到的话,就没人冒险去刷你了
|
7
di1012 2020-06-10 11:21:45 +08:00
请求环境限制,机器刷和正常环境请求还是有区别的
|
8
Vegetable 2020-06-10 11:24:27 +08:00
代理 IP 才能有多少个?没有什么代理能够承受的住高频刷的,你根据 IP 限流就好了。
|
9
Ariver 2020-06-10 11:24:34 +08:00
可以在访问你们页面的时候服务器生成一个一次性的 token,然后请求你们这个 api 的时候必须带上这个 token.
----- 然后在这个 token 生成的时候你应该就有很多方法来区分正常的用户和恶意的了。 |
10
af463419014 2020-06-10 11:29:12 +08:00
1.不需要登录的接口,只能用 ip 限频率
2.可以给接口在前端加一些签名校验,虽然是防君子不防小人,但在减小流量上还是有一些用的 2.如果是考虑到服务器负载影响其他接口,可以把登录后的接口和不需要登录的接口分开部署.保证登录后的接口稳定 |
11
locoz 2020-06-10 12:46:28 +08:00
1 、如果量非常大,已经影响正常服务了,那可以直接报警,警察可以顺着 IP 查到代理 IP 商,并且通过代理 IP 商找到对应的人。
2 、如果量没有大到那种程度,但有一定的影响,那就看情况使用设备指纹 / 无感知验证码服务 或 自己搞高难度加密参数。 3 、按照正常用户的使用情况进行限流,每分钟 /每 xx 分钟 x 次,简单粗暴。 |
12
locoz 2020-06-10 12:51:08 +08:00
@Vegetable #8 稍微大点的代理 IP 商手上都有个几千万 IP 的池子,IP 还是一直在更新的...“才能有多少个”有点太天真了
|
14
renmu123 2020-06-10 13:07:26 +08:00 via Android
如果有的话,那爬虫工程师都得失业了
|
16
oldManPushCar666 OP @Vegetable 代理确实是需要成本的,但是刷我们接口人每天更换 ip1000 个左右还是有的
|
18
C603H6r18Q1mSP9N 2020-06-10 14:05:10 +08:00
阿里云 WAF 了解下,是钱可以解决的问题
|
19
Vegetable 2020-06-10 14:07:19 +08:00
@oldManPushCar666 #16 一千个 IP,每分钟可用 IP 数量不到 1 个。该接口每个 IP 限速一分钟不得超过 10 次,20 次,60 次,这样你系统能负担的了吗?
|
20
locoz 2020-06-10 14:09:45 +08:00
|
22
locoz 2020-06-10 14:17:06 +08:00
@locoz #20 补充一下,之前我有篇文章介绍过(国内)代理 IP 商们的 IP 来源,可以看看: https://mp.weixin.qq.com/s/926AKX_EVQNmthBBTpWS4Q
另外按 @oldManPushCar666 #16 的说法,1000 个左右的程度基本可以忽略,用限流的方式就可以简单粗暴地解决。 |
24
DJQTDJ 2020-06-10 15:54:12 +08:00
可以在你所说的那个不需要登陆的窗口里面安装 google recaptcha 或者你重写一个也行,安全等级设定为最高
|
26
suckli 2020-06-10 16:24:19 +08:00
鉴权+根据真实使用场景限制频率
|
27
NoString 2020-06-10 17:05:50 +08:00
签名认证 apiKey ip 请求池 完整 api 网关都有这些功能的
|
28
zgzhang 2020-06-10 17:22:20 +08:00
@oldManPushCar666 你们的产品怕不是没被锤过,这个情况最合理的方式是针对 99%的正常用户不谈验证码,剩下的高频访问 IP 怎么恶心怎么来,验证码+返回裁剪+投毒
|
29
zgzhang 2020-06-10 17:25:44 +08:00 2
说个真实的例子,用户注册登录的接口,产品经理打着用户体验的大旗,不让加验证码甚至拒绝接入风控+验证码的方案,上线一个周被刷了几 W 块,后面半夜给我们打电话声音都是抖的
|
30
hopingtop 2020-06-10 17:32:56 +08:00
对于高频访问 IP,直接返回缓存数据或者投毒,让调用者认为他目的达到就行了。玩心理战, 代理池也是有一定成本的。对方大概率不会每次请求就使用代理。特别是当他访问畅通时。代理可能就不会用。
|
31
akira 2020-06-10 17:44:34 +08:00
任何防刷都是 提高对方的成本 , 验证码是最基本的一条。。
|
33
dallaslu 2020-06-10 18:58:55 +08:00
接口要加验证码????
|
37
mmdsun 2020-06-10 19:40:17 +08:00 via Android
Google reCAPTCHA v3 用户无感知验证码
|
38
chipuheado 2020-06-13 02:20:10 +08:00
他们刷东西的代理 ip 应该都在 cf 黑名单上,检测到就会要求 recaptcha
|
39
ximoer007 2020-06-16 13:15:04 +08:00
上专业的 API 网关进行防护
|