如题,验证码服务让我太感动了,他不止抢钱(调用一次 api 就几块钱),抢用户好感度,还给我送个时不时会被产攻破的验证码
由于没有检索到动态生成 http request url 的成熟方案,我目前想到的粗暴办法,是将整个网站用服务端渲染,服务端分发网站内容之前,用一个随机数算法,同一个接口,给每个用户生成不同的 request url 。
类似于 piao 客 和皮条客为了 piao 女昌 交易不被发现,piao 客 想见 女支女,只能每次都由皮条客告诉 piao 客 去找 女支女 的路线怎么走。
post body 带动态参数(比如 token )在我看来就像是数学题里的未知数 xyz ,如果 token 是一个参数,那加上 http request url 就是第二个参数,验证码就是第三个参数。
在数学的代数学上,这些动态参数被称作“元”。
学过初中数学都知道,二元一次方程会比一元一次方程计算困难,
网站和客对抗的过程,就是比赛 出数学题、解数学题 的过程,只要网站的数学题出得够难(例:用牛逼的加密算法),客破解该数学题的成本大于收益,那客就不会闲的蛋疼来搞了
注:本人是一名 web 开发,目前的常用技术栈为 Vue.js + python ( Flask 常用) + Nginx + docker + Linux ,所以希望大们能推荐一个开源的 python 包让我快速实现这个需求!!!!
![]() | 1 blankmiss 2023-01-14 14:43:25 +08:00 那不有逆向你前端 js 的操作,不应该从限流接口来做处理吗,针对接口进行熔断或者降级 |
2 rev1si0n 2023-01-14 15:54:09 +08:00 简单说一句:不可能的事情,总有办法可以刷你。 |
![]() | 3 godblessumilk OP @rev1si0n 只要成本够高,收益够低,铲就盯不上我 |
![]() | 4 tomato96 2023-01-14 17:32:19 +08:00 post body 带动态参数(比如 token )在我看来就像是数学题里的未知数 xyz ,如果 token 是一个参数,那加上 http request url 就是第二个参数,验证码就是第三个参数。 为什么非得用 URL 做第二个参数呢,body 或者 query 带上一个随机生成的、每个用户都不同的 code 标识不就行了?吗? |
![]() | 5 enrolls 2023-01-14 20:47:41 +08:00 via iPhone ![]() 参照微信,url 加密,解决下一个地址问题; ip 限流解决速度问题。还有什么问题? |
6 join23 2023-01-15 08:31:59 +08:00 via Android 根本不是问题啊?私人站还是公司的?性质是易招黑客体质?有巨量机密?别意淫了,你想什么方法都可以,但是要以事实为依据,私人的,自己爱怎么设计都行,反正提高自己水平。公司的,你提出实际问题后由公司决策,担心钱,根本没有办法解决。没有大仇的,黑客不可能盯上你。 |
![]() | 7 IvanLi127 2023-01-15 09:39:40 +08:00 via Android 没必要,url 路径和查询参数与请求体一样,都是入参,加 token 效果是一样的。动态变化的 url 只能让他们找你接口麻烦一点点。。。多搞几次也能发现规律。。。要是他直接模拟点击,接口啥样都无所谓。。。所以建议在前面套低成本的人机验证,减少高成本人机验证被刷的风险 |
![]() | 8 Herry001 2023-01-15 12:11:38 +08:00 这玩意有啥用……你要不研究下 Selenium ?不用验证码这货基本横着走。 公司项目找公司报销验证码,个人项目上 google recaptcha ,免费足够。 |
![]() | 9 godblessumilk OP @Herry001 Selenium 搞群控脚本是吧,很刑噢 |
![]() | 10 godblessumilk OP @IvanLi127 起码模拟真实用户操作这一步,客成本就已经上去了。 这个问题的本质可以归纳为:如何区分 [真实用户] 还是 [机器用户] 。 我目前想到有另一个办法: [真实用户] 是有作息时间的, [机器用户] 普遍没有作息时间,机器可以 24h 不睡觉。用这个特征也能拦下一部分。 另外 [真实用户] 有现实世界的公民身份证,注册账号时强制实名认证,这里也能拦下一批 [机器用户] |
![]() | 11 godblessumilk OP @enrolls 产用群控脚本慢速请求,模拟真实用户,你怎么给 ip 限速? |
12 edis0n0 2023-01-23 12:27:37 +08:00 你知道现在大学生劳动力有多便宜吗? 2captcha 之类给爬虫打验证码服务都不用 AI 用大学生了,官网介绍 All captchas are solved by workers, that's why 2captcha can bypass all humanly readable types of captchas. 你防的了机器我就上更便宜的真人 |
![]() | 13 xmrvabc2 2023-01-29 18:45:16 +08:00 你不是转了安全岗位吗,又做回开发了,还是开发香哈 |
![]() | 14 enrolls 2023-02-08 15:17:27 +08:00 via iPhone @godblessumilk 基于你的回复,反问你,你怎么知道 TA 不是真实用户?是一堆群控? 真要干这点的话,复杂得很,基于你的业务来思考,不是黑哥的成本问题,是你的投产比问题。 来点简单点解决:接入 cloudflare 使用 challenge ,manage challenge ;参考知乎简单的拦截是怎么做的? 来点你都要怀疑要不要做的:click trap 针对 fuzz ;参考微博,小红书,淘宝,知乎是怎么做的(跟用户系统设计有关),我理解下,大厂都有一个共性,微博最显著。支付宝也有,也是用在判断上。 |
![]() | 15 godblessumilk OP @xmrvabc2 现在在做安全开发,紧张又刺激,开发冷兵器呢 |