最近发现有人在恶意刷我们的注册接口,发送了大量的短信验证码,注册设备都是 iOS ,但是诡异的是每个账号的 IDFA 都不一样。 Note :注册接口加了限制,同一个号码在一定时间内只能接受一个短信验证码。 有人知道是什么黑科技吗?
1
youyoumarco 2016-09-10 15:35:38 +08:00
大量的真机同时注册?
|
2
zhicheng 2016-09-10 15:40:04 +08:00 1
IDFA 不过是个字符串,每个帐号不一样哪里诡异了。防止滥用的方法,限 IP , 限号码,限全局数量。
|
3
crab 2016-09-10 15:52:27 +08:00 2
被人直接当作短信攻击接口了吧。建议同号码 1 天只能 5 次短信。
最好加上验证码限制 IP 限制。 另外不管有没有发送成功都提示发送成功,别提示已经超过限制。 |
4
UnisandK 2016-09-10 15:54:12 +08:00 1
图形验证码
|
5
ljbha007 2016-09-10 15:56:15 +08:00 1
加图形验证码 还有限制 IP 发送频率
|
6
overlords 2016-09-10 16:04:38 +08:00
语言验证码
|
7
Wongzigii OP IDFA - This is unique for every device. It is reset in the following ways:
1.User can reset it and disable it as well (Limit Ad Tracking). This is found in Settings>Privacy>Advertising. 2.It is reset on OS re-install. 上网找到一些可以 reset IDFA 的方法 |
8
fyibmsd 2016-09-10 16:11:14 +08:00
付费注册 perfect
|
9
zhicheng 2016-09-10 16:21:43 +08:00 via Android
为什么要 reset ?难道你在服务器端会验证 IDFA 是否真实存在?
|
10
Wongzigii OP @zhicheng 只是做了一些渠道统计
1. 刷子不可能是直接调用接口来刷,我们接口是 https, 且请求参数做了手脚。 2. 每次手机号, IP , IDFA 都在变。 3. 目前我能猜到的是刷子通过越狱手机脚本模拟 APP 操作。 不知道谁做过类似操作或防范过类似攻击。 |
11
liuzhedash 2016-09-10 16:36:47 +08:00
@Wongzigii https 和接口是否能刷并没有关系吧?参数的手脚具体指的是什么?
|
12
aeshfawre 2016-09-10 16:38:20 +08:00
@Wongzigii https 接口对吧,数据应该没加密对吧。
直接模拟发送 http 包给你,软件随机修改其中的参数就可以的。这种一般都不可能是模拟 app 操作, |
13
bao3 2016-09-10 16:40:14 +08:00 via Android
跟楼主说一下,越狱后可以随便改。。。。。请一下广告跟踪就可以了。我是用越狱插件把所有的都伪造一次。哈哈原来还可以有这个功能。。。
|
14
aeshfawre 2016-09-10 16:52:47 +08:00
从你的描述来看,个人觉得就是简单的 http 封包来刷。 python 代码 30 行差不多。
ip 都在变:可能是利用 http 头的那个 x 开头的参数漏洞。另外一种就是买代理 ip 了,成本稍微高点就是。 解决方式:直接加验证码,或者客户端那边数据加密的方式,服务端这边解密失败就标记这个请求。这个需要让客户端升级成你的新版本,不知道你的 app 能不能实现。 其他的方法那就只能自己找了,他那边发送过来的 http 数据中,找出和正常用户有区别的东西来,找出来的异常账户做标记,不要让做脚本的人知道你发现了他,让他自己搞不明白你用了什么手段发现他。这些帐号以后可以删除,或者限制功能。 |
15
nodeath 2016-09-10 17:04:35 +08:00
紧急上个验证码吧。楼主是 APP 注册接口被刷要根治得判断是否越狱、越狱的需要查看是否安装作弊软件,符合的干掉
|
17
chuhemiao 2016-09-10 17:34:15 +08:00
加单个 ip 限制,加图形验证码。找运维把这个人 ip 先干掉
|
18
cszchen 2016-09-10 18:10:38 +08:00 via iPhone
肯定不会是用手机刷呀,模拟个 http 请求,几块钱就能买一堆代理 ip 。解决办法就是要做人机判断,成本最低的就是图形验证码
|
19
vus520 2016-09-10 18:53:22 +08:00
难道验证码不是最好的方案吗?
|
20
loading 2016-09-10 18:59:14 +08:00
嫁接 12306 的验证码,还能帮打码赚钱,多好。
|
21
jekkihun 2016-09-10 19:08:07 +08:00
@aeshfawre 请问 https 的 POST 请求是模拟不了吧? 我之前截取某个 iOS APP 的包时候, https 里面参数都是乱码。
|
23
liuxu 2016-09-10 20:14:52 +08:00
我们公司也出过这情况,后来加了图形验证码就好多了
|
24
xiaoqi 2016-09-10 20:25:04 +08:00
一般加极验验证就好啦,没有人那么无聊刷这个
|
25
codehz 2016-09-10 20:57:40 +08:00
@jekkihun 一般 HTTPS 的直接中间人攻击啊。。。就算用双向验证都有相关解决方案(大不了越狱提取一下客户端证书。。。)
|
26
tabris17 2016-09-10 21:42:06 +08:00
人家用脚本刷的,你 IDFA 有啥用,不都可以伪造么
|
28
ykrl089 2016-09-10 22:17:35 +08:00 via iPhone
加防 csrf ,如果码对不上直接挂断。
|
29
ic3z 2016-09-11 00:11:04 +08:00 via Android
1.加验证码
2.统计 ip ,限制次数 |
30
jccg90 2016-09-11 01:54:37 +08:00 via Android
以前刷过美团大众之类的各种首单优惠,刷过滴滴 uber 新用户优惠,刷过积分墙。。。现在没有完美的验证设备的方法,通过设备信息限制没有用,要加上别的思路。。。
|
32
0x00 2016-09-11 12:45:05 +08:00
一句话概括: 增加注册成本
如: 1. 上验证码, 图形, 滑动, 都可以, 推荐阿里云安全滑动验证码 2. CPU POW, 请求接口前, 先让 CPU 回答一个问题, 这个问题解题过程需要 3 秒左右 3. 付费注册, 或者先 OAuth 再注册 |
34
cjyang1128 2016-09-11 14:01:36 +08:00
目前的短信厂商不是都需要你提供验证码的吗
|
35
jccg90 2016-09-12 09:33:23 +08:00
@0x00 哈。。。刷首单之类的不是为了赚钱,是为了研究反作弊,不好好研究的话,被刷一轮要损失好多钱。。。这种事就要用黑客思维来思考。。。就像之前有不少电商公司出过支付 0.01 充值几百块的 bug ,这种问题只要稍微专业点的,都应该在开发设计中考虑到
|
37
keinx 2016-09-12 16:39:20 +08:00
访问接口的时候需要带上加密手机号、内容、时间的 token ,后端解密
|