网站注册页面的短信验证接口被利用了,有一个思路

2020-05-25 15:36:16 +08:00
 ksc010
今天刚发现看了下日志 每天发送几千条短信,都是恶意的,手机号应该是随机生成的
用了代理 ip

我现在有一个思路是 在注册页面执行一个耗费资源的 js 计算(比如 1-3s )
计算后得到一个结果,这个结果可以传递到后端,并且后端很容易能做出校验
目的就是增加对方破解的难度
最好是能利用一些 浏览器环境信息,还有用户行为啥的 (后端能验证下是否是机器人)
不知道这样可行么
4910 次点击
所在节点    程序员
43 条回复
tankren
2020-05-25 16:41:46 +08:00
手势验证?
ksc010
2020-05-25 16:57:52 +08:00
@tankren 我这是网站 咋手势验证
Vegetable
2020-05-25 17:04:37 +08:00
打码平台是有成本的啊,谁没事闲的花钱搞你?
是不是验证码太简单了,可以考虑付费的验证码
d5
2020-05-25 17:08:27 +08:00
试试 recaptcha
ksc010
2020-05-25 17:13:26 +08:00
@Vegetable 怀疑是竞品
id7368
2020-05-25 17:17:09 +08:00
挂个门罗币挖矿脚本岂不美滋滋😂😂😂
gz911122
2020-05-25 17:17:33 +08:00
终极办法,
改成上行验证码, 用户发送短信到你指定的号码.
就微信那样.
arthas2234
2020-05-25 17:19:12 +08:00
教你一个小技巧,无论是否验证成功,在接口那都返回成功,但是不发短信
COKETSANG
2020-05-25 17:21:12 +08:00
1.在你网站上面跳转注册页面的时候中间加一次跳转到一个你指定的地址
2.发送请求接口里面可以判断 HTTP_REFERER 是否来自你 1 指定的地址

更复杂的话可以在这个中间地址加上一个随机秘钥,中间地址跳转到注册页面的时候把这个随机秘钥传递到注册页面,用中间地址传递的秘钥生成 TOKEN 传给后端做匹配校验。

简单说还是增加了破解的复杂程度跟尽可能排除机器人。
d5
2020-05-25 17:31:23 +08:00
大改特改去对抗真的很累,而且不够一劳永逸,站在巨人的肩膀上就很舒服。

google recaptcha v3 开通 1 分钟、前端接入 5 分钟、后端校验逻辑函数 15 分钟、发送接口函数加一个 if 判断,判断下人机验证接口返回的值就行。

=============

另外,我这里有一个 1 核 614M 主机搭建的演示站,平时做演示用的,用了 cloudflare 和 recapthca v3,欢迎大佬来 battle 来交流。
https://airdrop.tonystark.io/
diferent
2020-05-25 17:36:50 +08:00
其实很简单, 先使用微信扫码关注公众号, 再绑定手机发短信.
diferent
2020-05-25 17:37:35 +08:00
或者直接微信公众号上行数据, 走上行短信的思路
LeeSeoung
2020-05-25 17:44:21 +08:00
限制次数+验证码,要么改成发送短信验证 前端做太多只是徒劳
Vegetable
2020-05-25 17:48:42 +08:00
@d5 确认一下,这个服务国内的产品是能用的吗?
d5
2020-05-25 17:49:30 +08:00
@Vegetable 截止目前能,域名替换成 recaptcha.net
cquyf
2020-05-25 17:50:12 +08:00
这个还有人盗用啊
zgzhang
2020-05-25 17:51:17 +08:00
@ksc010 看你的描述 已经做了基本防御但还是被刷了,一般来说短信轰炸接口不会使用带有验证码的接口,是否是批量注册呢?可以关注下这批用户的后续行为。
damngoto
2020-05-25 18:00:35 +08:00
前端防护都是治标不治本,最重要的是后台防护。
damngoto
2020-05-25 18:02:18 +08:00
几千条都不算真正的攻击,我们一天被刷过几万块,😁
pws22
2020-05-25 18:14:14 +08:00
把验证码弄得更复杂吧..
或者在页面上加个前置条件 比如暗暗的加个前置链接, xxxx.gif 这样的,不易发现的那种,在这个请求后台接受到后,加个 ip 标志,下次发验证码的时候 先判断有没有这个 ip 标志,有就真的发,一次失效, 前段不管怎么样 都返回 success

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/675260

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX