如题,验证码服务让我太感动了,他不止抢钱(调用一次 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 1
参照微信,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 现在在做安全开发,紧张又刺激,开发冷兵器呢
|