网站注册页面的短信验证接口被利用了,有一个思路
用了代理 ip
我现在有一个思路是 在注册页面执行一个耗费资源的 js 计算(比如 1-3s )
计算后得到一个结果,这个结果可以传递到后端,并且后端很容易能做出校验
目的就是增加对方破解的难度
最好是能利用一些 浏览器环境信息,还有用户行为啥的 (后端能验证下是否是机器人)
不知道这样可行么
我现在有一个思路是 在注册页面执行一个耗费资源的 js 计算(比如 1-3s )
计算后得到一个结果,这个结果可以传递到后端,并且后端很容易能做出校验
目的就是增加对方破解的难度
最好是能利用一些 浏览器环境信息,还有用户行为啥的 (后端能验证下是否是机器人)
不知道这样可行么
比如加载某个比较小的图片.. 改成后端数据流渲染,然后 js 判断是否是无头浏览器, 如果没有加载图片,就认为是机器呗,验证码不实际发送,返回发送成功,后台记录就好 其实,短信的攻防没有完美的解决方案,在于攻击你的人愿不愿意付出更多的成本来攻击你,也就是从你那里获得的回报要能大于他的付出,控制好这个点就 ok 了,你做了图片验证,他使用 OCR 和打码平台也是需要成本的,当成本高于收益,他自然不会干这种傻事
破解也要花钱,如果成本和短信持平,那就没有动力来利用你的接口了。
更复杂的话可以在这个中间地址加上一个随机秘钥,中间地址跳转到注册页面的时候把这个随机秘钥传递到注册页面,用中间地址传递的秘钥生成 TOKEN 传给后端做匹配校验。
简单说还是增加了破解的复杂程度跟尽可能排除机器人。
google recaptcha v3 开通 1 分钟、前端接入 5 分钟、后端校验逻辑函数 15 分钟、发送接口函数加一个 if 判断,判断下人机验证接口返回的值就行。
=============
另外,我这里有一个 1 核 614M 主机搭建的演示站,平时做演示用的,用了 cloudflare 和 recapthca v3,欢迎大佬来 battle 来交流。
https://airdrop.tonystark.io/