美团面试:接口被恶意狂刷,怎么办_-李明阳
这题早就有标准答案了,30年前就用来对付垃圾邮件,PoW。
要求客户端做一些垃圾运算,这种运算的特点是计算困难,检查简单。
计算的输入中,有时间戳,所以可以控制重放攻击,如果你想刷接口,就必须进行很多垃圾运算。
对正常客户端来说,只是慢零点几秒,几乎无感。
对刷接口的人来说,就需要投入大量资源,大大降低效率。
甚至,还可以通过参数控制难度,第一次请求只需要垃圾计算零点几秒。
如果同一个IP频繁请求,我就让你计算几秒钟。
再配合验证码之类的,绝对可以让刷接口的怀疑人生。
评论区
尘埃: 发给他一个区块让他算,顺带帮自己挖矿了 👍🏽734 💭天津 🕐2023-05-12 23:39:27
│ └── 迪迪: 反向薅羊毛,我之前就想过能不能接电话骚扰电话收费,感觉和你这个想法差不多 👍🏽121 💭北京 🕐2023-05-12 23:55:54
│ └── Necins: 据说比特币的诞生就与这种设计有关,如果是某个邮件服务商搞出了比特币那说不定真的赚翻了[大笑] 👍🏽5 💭北京 🕐2024-05-23 10:51:31
│ │ └── Randname: http://cock.li现在还在用这个机制进行新用户认证,“Q:你是不是在挖矿?”“A:我还希望是呢!” 👍🏽16 💭辽宁 🕐2024-05-31 15:04:02
│ └── senwev: 好家伙,有理由怀疑淘宝首页这么卡,是不是让全国人民帮他挖矿[惊喜] 👍🏽6 💭广东 🕐2024-06-26 16:46:52
│ └── 爱国更爱民: 不可能,你自己也要算一遍的,否则不知道对面发过来的结果是否正确。这样你自己先扛不住了。[大笑] 👍🏽0 💭北京 🕐2024-07-11 15:00:59
│ │ └── CarryPls: 他挖矿你验证就行了,比特币只有单向计算复杂[大笑] 👍🏽35 💭广东 🕐2024-07-16 10:08:07
│ │ │ └── 凄临雨: 挖不出来怎么办? 👍🏽0 💭浙江 🕐2024-11-19 12:15:09
│ │ │ └── 板砖厂长: 挖不出来就只证明这个区块没有矿,为什么一定要挖出来 👍🏽2 💭宁夏 🕐2024-11-19 13:40:54
│ │ │ └── 凄临雨: 入侵者就直接报告挖不出来,你验证的出来吗 👍🏽2 💭浙江 🕐2024-11-19 16:05:37
│ │ │ └── Tender: 计算难度大于验证。你验证他的计算有错不返回正确信息,这样调用方只有真的计算了才能获得正确返回。 👍🏽0 💭上海 🕐2025-01-03 14:53:58
│ │ │ └── 凄临雨: 我恶意地报告一个区间里没有矿,你要验证我是错的,你就得亲自把它挖出来。(除非你自己已经挖出来矿了,故意让我挖挖看) 👍🏽0 💭浙江 🕐2025-01-03 16:19:38
│ │ │ └── Tender: 我举例说明吧。btc的挖矿是算一个区块的hash,如果hash的前缀有连续十几个零则挖矿成功。那实际情况我利用类似的效果,比如让你凑连续5个0的hash,通过不断调整nonce,是一定算得出的,所以你必须提交一个连续5个0的hash,我验证成功才返回,这个连续几个0的要求就是挖矿的难度,可以动态调整。 👍🏽0 💭上海 🕐2025-01-03 16:40:49
│ │ │ └── 我变成了一条鱼: 客户端挖不到矿才返给你,挖到了就自己拿去用了[思考] 👍🏽0 💭广东 🕐2025-04-29 18:23:28
│ │ └── 启德赤鱲角机场: 验证,比计算容易多了。这边建议你去学一下PoW原理[惊喜][滑稽] 👍🏽14 💭浙江 🕐2024-10-09 12:51:26
│ │ └── ieniegg: btc机制的验证就很快呀 👍🏽0 💭广东 🕐2025-03-09 08:06:07
│ │ └── Seeker: 学过密码学吗[飙泪笑] 👍🏽0 💭广东 🕐2025-04-17 18:49:25
│ └── 特例: 给你假数据就好了[惊喜] 👍🏽0 💭浙江 🕐2024-11-24 16:38:03
│ └── Wheeler: 验证很简单 👍🏽1 💭上海 🕐2024-11-25 08:01:21
庞四焘: 比特币白皮书的参考文献里好像有这篇[思考] 👍🏽124 💭安徽 🕐2023-05-13 11:42:15
│ └── 秋叶: 口说无凭[撇嘴] 👍🏽3 💭福建 🕐2023-05-13 17:26:11
│ └── McEndu: https://bitcoin.org/bitcoin.pdf 👍🏽52 💭北京 🕐2023-05-13 18:38:44
林不错: 好家伙,我拼死拼活把接口性能优化百来毫秒,全年kpi全指着它,你直接慢个零点几秒 👍🏽74 💭上海 🕐2023-05-14 17:57:39
│ └── 张三: 前端慢问题不大,弄个进度条。 👍🏽21 💭广东 🕐2023-05-15 00:37:45
│ │ └── ImKAIne: 前端也可以通过设置缓冲token的方式来做 👍🏽0 💭浙江 🕐2023-09-27 19:17:31
│ └── iama: 不冲突,优化接口性能是给后端减负增效,这里的策略是给客户端加压 👍🏽301 💭浙江 🕐2023-05-18 14:20:51
│ └── 知乎用户AUMwJS: 它这是单连接慢,后端还是多连接并发性能也可发挥呀 👍🏽0 💭浙江 🕐2023-06-16 13:09:49
│ └── ImKAIne: 再贴心点,客户端根据token池的储备量开不同线程数和难度去获取token,保证低频浏览基本上无开销,高频浏览一般也是重度用户略微增加开销,还可以pow和pos混合来玩,硬盘内存显存cpu算法轮换获取token 👍🏽1 💭浙江 🕐2023-09-27 19:30:30
│ └── 飞鱼: 不冲突,工作量证明只是前端算起来很慢,服务端验证很快的 👍🏽0 💭浙江 🕐2024-11-10 11:04:50
│ └── 清雨影: 客户端压力上去了,但是垃圾请求少了,你的接口还能更快一点。 👍🏽0 💭日本 🕐2024-11-17 22:05:11
│ └── 知乎用户kbdAxh: 前端慢一点点问题不大(用户可以承受的范围内),只要请求真正打入后端到处理结束,不慢就可以。 👍🏽0 💭北京 🕐2025-01-10 08:51:18
Los Lu: 对美团这种c端为主的app,零点几秒可不是没影响的,有些页面慢一点就会掉dau,要前后端一起做曝光耗时优化的 👍🏽51 💭上海 🕐2023-05-14 11:13:44
│ └── Sental Cristar: 你可以对某些人才使用,第一次不做计算,某次开始返回特定状态,然后PoW验证,h 👍🏽10 💭云南 🕐2023-12-07 14:47:07
│ │ └── Los Lu: 这个东西在国内搞不起来的,增加接口rt,增加客户端包体积,都是跟业务kpi反着来,谁乐意干啊。防刷那是网关的kpi,网关自己想办法,影响一丁点我业务的指标给你头打掉[飙泪笑] 👍🏽54 💭上海 🕐2023-12-07 17:37:44
│ │ └── 被强煎的蛋: [doge]vmp带来的性能影响可不比这个低 👍🏽0 💭广东 🕐2024-09-27 07:56:43
│ │ └── Botton: 什么搞不起来,用pow计算的大厂多了,只是你不知道而已。百度的旋转验证码都有用到的 👍🏽3 💭浙江 🕐2024-10-05 23:53:52
│ └── Chow Anod: 前端可以优化的,提前算好,操作的时候再提交即可 👍🏽0 💭广东 🕐2024-12-03 12:07:37
│ └── 云深: 美团接口要求100ms以内 是真的吗 👍🏽0 💭北京 🕐2025-04-20 13:45:31
QAQ: 最后一句,你这个计算的名字是不是叫验证码 👍🏽39 💭广西 🕐2023-05-13 20:00:41
│ └── Lyragosa: 不是,验证码是给人看,这个是给机器算 👍🏽51 💭四川 🕐2023-12-07 18:25:54
│ │ └── 于是又胖一斤: [doge]如果是图形验证码的话,那自动识别并填写确实需要计算啊 👍🏽0 💭上海 🕐2024-05-08 09:22:27
│ │ └── 学习爱我: 图形验证码也是给人看的,生成运算都和客户端机器没关系,这里是给客户端机器上压力 👍🏽7 💭陕西 🕐2024-05-16 08:15:30
│ └── Lyp: 他的意思是比如说 计算1000000次md5[捂脸] 👍🏽0 💭广西 🕐2024-05-26 09:31:02
│ └── g00dm0rning: 不是啊。。。 👍🏽0 💭北京 🕐2025-04-07 13:38:24
wincss: 翻了一下代码库,我司注册页面的PoW防刷是我2018年写的[doge],是真的让客户端算一个dblsha的nonce呢[图片] 👍🏽31 💭新加坡 🕐2024-04-29 18:39:37
苳杋: 有个疑问,调接口允许匿名?有鉴权的话肯定知道是哪个具体用户在调。 👍🏽11 💭上海 🕐2023-05-28 08:06:08
│ └── rainy: 登录接口 👍🏽10 💭河南 🕐2023-10-02 19:04:28
│ └── 逗泥丸的平方: [发呆]那鉴权不也爆了 👍🏽4 💭上海 🕐2024-05-29 19:38:01
│ └── 大大的也很可爱: 又不是qeb项目,不登录啥也干不了。 👍🏽0 💭江苏 🕐2024-06-29 09:55:31
陈正军: 计算复杂验证简单指找到一个不重复的比特币才能过[doge][doge][doge] 👍🏽6 💭浙江 🕐2023-05-15 18:15:52
洪逸铭: 有一点不懂,如何根据请求次数调整难度呢?接口先返回要求计算的函数,客户端再计算后返回结果?感觉不是web领域的应用是这样吗 👍🏽6 💭澳大利亚 🕐2023-05-13 16:45:57
│ └── 职业推送: 比特币挖矿的原理 👍🏽16 💭广东 🕐2023-05-13 20:25:41
│ └── QAQ: 应该是这样,把数据进行加工之后返回,作为密码。或者直接上RSA这种 👍🏽0 💭广西 🕐2023-05-15 12:16:14
│ └── Sy-R: 典型算法像是小质数分解之类的,比如服务端随机生成两个小质数43和37,把乘积1591给客户端让客户端分解出43和37。服务端生成质数很快、把俩质数乘起来也很快,但是客户端分解慢得多,分解完了服务端验证相等也很快。 👍🏽58 💭新加坡 🕐2023-05-15 16:15:32
│ └── Sy-R: 当然除了RSA用的质数分解,能用的算法还有很多,比如比特币用了哈希+限定条件,再比如解高次方程这些。 👍🏽1 💭新加坡 🕐2023-05-15 16:19:50
│ └── 外公的澎湖湾: 是第一次访问需要计算还是每一次访问都要计算呢?如果是第一次访问需要计算,后续还是容易被刷啊,如果是每一次访问都根据上一次给的值计算,如果中途出现网络问题,那也会给正常用户带来不便 👍🏽0 💭广东 🕐2023-11-16 13:19:59
│ └── libla: 服务器给出一个前缀,客户端算出后面要加什么数据,保证crc/md5/sha1(随便选一个)的结果符合某个要求,比如前多少位是0 👍🏽3 💭湖南 🕐2024-01-13 10:21:36
│ │ └── Sy-R: 是的,就是底下说的哈希+限定条件 👍🏽0 💭法国 🕐2024-01-13 10:53:00
│ └── 漆黑之梦: 小质数分解也不慢,如果是恶意攻击,在质数表面前这种质数啥都不是,至少得足够大的质数才行,但是足够大的质数常规的客户端解析起来就麻烦了 👍🏽0 💭北京 🕐2024-12-10 16:37:47
知乎用户0tBziW: 没太懂,客户端算了,服务器端检查为啥简单,这种原理是? 👍🏽5 💭四川 🕐2023-05-13 08:36:10
│ └── Harp Liu: 比如给你一个高次方程,你求解很难,但我验证你的解对不对很简单 👍🏽168 💭北京 🕐2023-05-13 08:44:56
│ └── 魏小白: pnp理解吗?复杂的问题验证下答案对不对也是很简单的 👍🏽6 💭湖北 🕐2023-05-13 09:56:35
│ └── Aoiaz: 比如每次都给你个六位字符串哈希值,要你找源字符串。你就只能暴力搜索,然后搜到了以后服务端只用哈希一次就知道结果是否正确 👍🏽77 💭广东 🕐2023-05-13 11:26:27
│ │ └── momo: 六位不多,彩虹走起 👍🏽1 💭广东 🕐2023-05-13 21:03:46
│ │ │ └── LCH: 加一个一次性、长度64的盐就行了。 👍🏽2 💭北京 🕐2023-05-14 08:48:31
│ │ └── 谭靖东: 那把各种hash值扔出去,时间久了岂不是可以算出个彩虹表来?免费的分布式计算? 👍🏽0 💭云南 🕐2023-05-15 12:25:09
│ │ │ └── 流星划空: [害羞] 有人就是拿这想法利用网络上攻击来进行收集,天天被扫几万个尝试登录后台的请求 👍🏽0 💭广西 🕐2024-04-18 05:44:21
│ │ │ └── 极客志: 这个彩虹表存在哪? 👍🏽0 💭广东 🕐2024-11-23 12:28:57
│ │ │ └── 谭靖东: 提交给服务器当然存在服务器啊 👍🏽0 💭云南 🕐2024-11-23 14:44:44
│ │ │ └── 极客志: 这个量近乎是无穷的哦 👍🏽0 💭广东 🕐2024-11-23 14:51:55
│ │ └── 暗红: 记得加盐 👍🏽0 💭江苏 🕐2024-05-07 18:14:48
│ └── 罗勒郭: PoW就是工作量证明,比特币使用的就是这个东西。就是找一个有特定规律的hash值,比如找到一个前16位都是0的串,给定算法和参数,在只有一个变量情况下,其实客户端除了让变量从0开始计算,每次都变量+1,没啥好方法。而服务器只是验证是不是前16位都是0就行了。计算复杂,验证简单。 👍🏽36 💭北京 🕐2023-05-13 12:57:50
│ │ └── Tommm: 能不能保存一下常见计算结果做成彩虹表[好奇] 👍🏽2 💭湖北 🕐2023-05-13 22:50:20
│ │ │ └── 李明阳: 加上时间戳和盐不就行了?让你的彩虹表彻底无法使用。 👍🏽18 💭德国 🕐2023-05-13 23:36:47
│ │ └── 知乎用户0tBziW: 好家伙 这个消耗客户端cpu资源 👍🏽0 💭四川 🕐2023-05-14 16:06:52
│ └── 知乎用户sDXvAO: 举个例子,分解质因数困难,验证就很简单 👍🏽15 💭中国澳门 🕐2023-05-13 13:09:51
│ │ └── linsk: 分解质因数验证也难,因为要确保传入的是质数 👍🏽0 💭福建 🕐2023-05-15 12:25:52
│ │ └── 知乎用户sDXvAO: 受教了 👍🏽0 💭广东 🕐2023-07-25 09:59:32
│ │ └── Serveetah: 验证怎么可能难?服务器随机选择若干个质数,将相乘后的结果发给客户端。客户端分解质因数,将结果发给服务器。服务器只需要比较之前所选择的质数与客户端的结果是否一致。 👍🏽0 💭广东 🕐2024-11-17 15:05:26
│ └── 伟大的伟: 没考过试吗[好奇]你只有笔纸,老师有答案 👍🏽20 💭江西 🕐2023-05-13 20:43:35
│ └── Freedom: 哈希计算。你很难根据哈希值得到原来的值,但是你可以很轻松的根据原值获取哈希值 👍🏽1 💭上海 🕐2023-05-14 19:10:45
│ └── 谢然: 验证码不就是吗 👍🏽0 💭浙江 🕐2023-05-14 22:32:15
│ └── VizXu: 就是非对称加解密那种,比特币原理就是这样 👍🏽0 💭上海 🕐2023-05-15 13:17:53
│ └── 王帅: 单向陷门函数[捂脸] 👍🏽0 💭北京 🕐2024-10-08 20:38:28
│ └── Keyboard Hero: 复杂函数求解很麻烦,但是想知道数值解对不对,代进去算一遍就知道了。还有需要试算+迭代的进阶算法。还有随步数收敛且需校验全局最优的进阶算法。 👍🏽0 💭浙江 🕐2025-04-30 19:18:46
笑谈渴饮蒸馏水: 关键问题就是怎么确定是第几次,确定是一个人 👍🏽3 💭江苏 🕐2023-05-13 17:45:54
│ └── 沉醉: 看ip 👍🏽4 💭山东 🕐2023-05-13 21:16:41
│ └── 今天不用铁棍用电棍: 移动网络ip不会误杀吗 👍🏽0 💭湖北 🕐2023-05-14 01:23:39
│ └── Akira Taka: 我猜数量级调整让误伤可以接受。比如平常接口是0.01的验证时间,遇到某ip异常突发访问那直接调整延迟到1.0秒,同公网ip的确实慢多了一点误伤了但是绝对时间也很小,用户不敏感所以可以接受。而你刷接口的那就是高了两个数量级的门槛,成本打不住。而且系统容量大更能控制误伤范围,假设平时平均访问ip数量1万,发起5万,而系统峰值容量10万,那你刷接口的起码也刷三五万才会对系统造成明显影响吧?这时候我延迟你几个异常ip实际影响的其他用户估计也就1%不到,那更不怕误伤了。 👍🏽20 💭广西 🕐2023-05-14 09:36:42
│ └── 李明阳: 其实会,但是后果不严重,设定个延迟上限就好。之前出现过蜂窝网络买票,结果一个基站下的手机共用ip被拉入黑名单了。后来,蜂窝网络的出口ip就在白名单里了。你能用得起流量来刷,那成本也够高的。目前没有不限流量的套餐,都是用到多少之后限速,防止一个人把基站资源都用完,别人没得用。物联网卡只给企业开账户,企业要是滥用,运营商也会去管。你就是开个虚拟机,被人投诉的话,运营方也会处理的。 👍🏽3 💭北京 🕐2023-05-14 13:24:48
│ └── 笑谈渴饮蒸馏水: 刷接口不都是json或者文本数据,一次1k差不多吧,不需要太多流量。共用IP人数多的话就惨了,用户会把问题归咎于运营商 👍🏽0 💭江苏 🕐2023-05-14 17:47:36
Hypatia: 中本老師,您又復活了? 👍🏽4 💭美国 🕐2024-05-10 06:34:17
sk愛美: hashcash 👍🏽3 💭江苏 🕐2024-05-08 00:34:45
羽露: 那人家直接给你返回随机值,让你浪费时间验算呢? 👍🏽2 💭河北 🕐2023-08-17 14:09:36
│ └── 李明阳: 检查操作通常计算量极低,到底是发一个请求需要的资源多,还是检查的资源多,真不一定。但一定要比实际执行一次正常请求对服务器的代价低。最后把应用层的刷接口强制退化成打流量的ddos,也算是把目的达到了。很多cc攻击是可以四两拨千斤的,比如一些大计算量的搜索接口,不保护的话,一部手机产生的流量就可以压垮一个集群。 👍🏽24 💭北京 🕐2023-08-17 15:32:47
│ └── 缘灬梦哥: 给的算法到客户端,计算机只有算得慢的情况,不存在算错的情况,算错就算做恶意攻击,直接封IP 👍🏽9 💭四川 🕐2024-05-17 11:21:13
│ └── 诸葛不亮: 我扔给你俩一百位的质数乘积,让你做质因数分解。你扔个随机值给我,我验算的开销约等于零 👍🏽0 💭天津 🕐2024-11-21 21:42:28
咯子: 一群人都没看懂答主的思路,就开始质疑了。。。就一个简单的网站服务来说,所谓刷接口,刷的是什么?是他的恶意流量已经穿透到你的业务逻辑部分了,刷的是你的redis、mysql,还有一些耗资源的内容,这将占用你大量的服务器资源,但是如果你能在gateway层面就给他拦截住,损耗就很小了。答主的办法,简单做个比喻是,我通过第一个接口给客户端一道题,比如返回一个md5字符串,同时告诉你这个md5是3位数字计算出来的,可能的值从000到999,然后客户端在请求业务接口的时候,要带上这个原始字符串。这样客户端就最多可能尝试计算1000次才可以,这1000次的cpu损耗就他是他的成本,如果某个ip异常行为加大,只要告诉客户端现在这个md5是5个、10个或者100个数字计算而成的就可以动态加大难度了。当然,实际使用场景中,这个题具体是要计算什么,要根据你的流量和业务场景来决定。 👍🏽1 💭北京 🕐2024-11-14 02:11:56
上善: 要求客户端计算的话,你要先给他个盐值和目标值,但如果他疯狂刷你的盐值接口呢?[思考] 👍🏽2 💭广东 🕐2023-05-15 11:20:11
│ └── 阿狗真的很严格: 这种请求又不消耗啥资源,刷就刷呗。如果这种资源你都害怕被刷那你服务器开个apache nginx端口就算什么代码都没写都会有简单计算的 这点消耗估计都比生成一个盐值高。。 那你还提供什么网络服务呢 👍🏽23 💭湖南 🕐2023-05-15 17:58:35
革命觉悟: 妙哉妙哉 👍🏽2 💭北京 🕐2023-05-15 01:10:30
悬溺: 前些年调用 ip 就已经很容易了,那接口该怎么保证操作呢。基本上都是用的虚拟 ip 或者动态 ip。[捂脸] 👍🏽2 💭四川 🕐2023-05-15 09:22:44
│ └── 阿狗真的很严格: 虚拟 ip 或者动态 ip网络很差的 做不到大量刷的。。如果做得到 每次IP都不一样 那就当正常访问量了呗 👍🏽3 💭湖南 🕐2023-05-16 10:36:39
│ └── 悬溺: 我记得我以前用的时候都是放在那个协议里 然后后面后台查 ip 就是那个动态的。现在好多薅羊毛的就是这种,不用网速快能发出去有用就行。[捂脸] 👍🏽0 💭四川 🕐2023-05-31 09:18:31
yaoyao: 一个限流就搞定的事,生生被你们这些人搞得满身铜臭[酷][酷][酷] 👍🏽1 💭上海 🕐2024-05-23 17:44:46
│ └── v.k: 限流你是根据什么判断唯一客户端的,都可以伪造 👍🏽3 💭陕西 🕐2024-10-06 00:41:29
知乎用户u2KNWk: 你是知乎行走的百科全书吗?咋感觉你什么都懂一点啊 [为难][为难][为难] 👍🏽1 💭广东 🕐2023-05-18 10:41:43
xxJAY: pow可还行,学到了 👍🏽1 💭四川 🕐2023-05-22 23:14:41
公平的珍贵: 请问怎么要求客户端做什么,如果客户端直接不解析响应体是否就跳过了呢是在响应头里要求客户端吗 👍🏽1 💭山东 🕐2023-05-15 09:12:50
│ └── 贵乎芝士欠费: 加密算法写客户端里打包分发,客户端请求头加上加密字段,服务端解析请求头里的验证字段就行。用拦截工具只能看到加密后的验证字段,基本没法反算出原始字段。 👍🏽2 💭北京 🕐2023-05-17 20:11:25
│ └── 贪吃爱睡常长膘: 你不解析,那么你无法找服务器端要数据呀… 👍🏽0 💭天津 🕐2023-06-02 13:11:58
人生下半场: 很有参考价值。不过这个跟刷接口不太一样,这个更适合ugc类的接口吧,普通接口主要还是控制频次,ip 指纹 类的 👍🏽0 💭北京 🕐2023-08-15 21:31:54
南蛮教主: 刷接口不是频繁http请求吗?为什么要本地运算?[飙泪笑] 👍🏽0 💭广东 🕐2024-09-26 19:18:24
│ └── 王于舟: 这里是假定攻击方打不满网络带宽,主要是针对比较耗时的接口的短板环节(比如数据库访问)进行攻击,起到隔山打牛的作用。比如,从带宽层面上说,经过计算可能平均能够满足10000QPS,但是某个关键接口受限于数据库等瓶颈只能实现1000QPS,而攻击者的攻击频率也相当于1000QPS,如果不进行防护的话可以直接把这个关键接口打到瓶颈,从而显著影响服务稳定性。而对这个关键接口进行防护后,如果只是进行HTTP层面的攻击,在达到服务器网络带宽上限之前都无所谓,因为没有经过计算量检验说明不是普通用户,根本不需要实际处理。 👍🏽3 💭湖北 🕐2024-10-05 08:57:43
二牛: 淘宝多刷几个商品就进度条警告,这玩意真的好吗 👍🏽0 💭上海 🕐2024-05-10 08:38:06
Dear John: OpenAI直呼内行 👍🏽0 💭浙江 🕐2024-12-04 09:17:25
bluetrees: 倒算hash是吧[捂脸] 👍🏽0 💭浙江 🕐2024-11-28 12:45:56
杨个毛: 知乎刚才给我推了这个回答,然后又给我推了下面这个回答……https://www.zhihu.com/question/655963366/answer/3500130472 👍🏽0 💭北京 🕐2024-11-21 22:01:52
ruik000: 学到了 👍🏽0 💭北京 🕐2023-05-13 14:13:18
zxv: 如果计算的输入参数是写在客户端的,绕过就很简单了,分析出这个计算的逻辑,可以单独用一台机器提前把所有时间的结果算出来,然后另外一台服务器直接拿算好的结果去请求接口。如果是请求接口之后接口返回参数给你计算,你再发送结果,之后接口才能正常返回数据,这种逻辑确实可以有效控制,但是多了一倍的网络请求次数,都不说计算会花多长时间,单就这额外一倍的网络传输时间都要老命了。。 👍🏽0 💭上海 🕐2024-11-15 10:47:27
│ └── 诸葛不亮: 响应的64位时间戳加上账号id加上一个6位数字合并起来的哈希值,要求返回那个六位数。欢迎预打表[爱] 👍🏽0 💭天津 🕐2024-11-21 21:46:30
hans: 排队 👍🏽0 💭四川 🕐2024-10-21 09:36:26
Deemo: 我好像发现了一个矿池新思路[思考] 👍🏽0 💭韩国 🕐2025-04-03 10:37:35
npc2048: 如果狂刷这个给验证接口本身怎么办[捂脸] 👍🏽0 💭广东 🕐2024-07-21 16:27:40
乞各兹鸠·岗缸豪: 没有那么复杂,刷接口一般都是跳过客户端直接调接口,递增和过期校验稍微做得复杂一点,就可以挡住大多数hack,网关再针对ip设置下qps上限就完事 👍🏽0 💭北京 🕐2024-06-01 19:20:57
momo: 直接DDOS呗 👍🏽0 💭上海 🕐2024-05-30 17:47:42
纯路人: 是客户端每次调接口都需要向服务端申请一次计算结果吗?服务器返回时间戳和计算结果,客户端把结果除以时间戳后分解质数,然后把计算结果和分解的质数加入需要调用的接口作为参数进行访问…服务器从缓存中看有没有这个计算结果并验证质数…是这样吗[好奇] 👍🏽0 💭四川 🕐2024-05-18 14:45:42
byeyo: 要求客户端做垃圾运算的接口,怎么防止频繁请求呢 👍🏽0 💭山东 🕐2025-01-20 09:23:46
风的轨迹: 可以客户端监测下接口调用频率,如果异常,就上复杂运算,随着接口调用数量增加,算法越来越复杂 👍🏽0 💭上海 🕐2024-05-08 15:32:55
奇奇又怪怪: 现实中不怎么用这个方案……低延迟还是很重要的。 👍🏽0 💭浙江 🕐2023-11-20 10:12:14
森林不下雨: 这个思路太牛逼了 👍🏽0 💭上海 🕐2023-11-18 10:05:24
知乎用户fLP2gX: 我是用的ip,一个ip一天限制1万次,不知道是不是行业常用做法。 👍🏽0 💭四川 🕐2023-05-15 14:24:53
│ └── 青椒五香酱油牛肉: 之前遇到的做法是限制一个小时内请求次数 👍🏽1 💭江苏 🕐2023-06-06 13:04:57