V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
x537196
V2EX  ›  问与答

你们是如何防止恶意注册的?

  •  1
     
  •   x537196 · 2016-11-21 22:28:47 +08:00 · 6938 次点击
    这是一个创建于 2713 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在遇到个情况
    客户端是手机短信验证码注册的,但是有个鸟人,恶意批量注册账号,全是不同的手机号,设备号每次也不同,应该是破解了客户端,然后用注册机搞得,现在没有有效的拦截方式
    图形验证码和语音验证码加不了

    19 条回复    2016-12-19 21:40:30 +08:00
    lisonfan
        1
    lisonfan  
       2016-11-21 23:07:58 +08:00 via iPhone   ❤️ 1
    限制 ip ?
    tomczhen
        2
    tomczhen  
       2016-11-21 23:42:44 +08:00 via iPhone   ❤️ 1
    人家根本不是注册,是你的短信接口被用来做短信轰炸机了。不能修改的话无解,顶多根据号码和 IP 做调用频率限制。
    shiji
        3
    shiji  
       2016-11-21 23:48:07 +08:00 via Android   ❤️ 1
    好像都不用破解客户端,直接监听网络,构造请求就差不多可以了。

    要不就考虑想腾讯某些服务那样,双向短信认证?
    ipconfiger
        4
    ipconfiger  
       2016-11-21 23:52:40 +08:00   ❤️ 1
    原来有朋友公司遇到过, 一次性被刷了 2000 多的短信费. 一样也是注册验证码, 不知道楼主所谓的图形验证码加不了是个什么意思
    x537196
        5
    x537196  
    OP
       2016-11-21 23:58:18 +08:00
    @lisonfan IP 也是变动的
    x537196
        6
    x537196  
    OP
       2016-11-21 23:58:44 +08:00
    @tomczhen IP 和号码根本没有规律
    x537196
        7
    x537196  
    OP
       2016-11-21 23:59:42 +08:00
    @ipconfiger 就是在客户端加图片验证码,这个会复杂注册流程,流失正常用户
    x537196
        8
    x537196  
    OP
       2016-11-22 00:00:39 +08:00
    @shiji 蛋疼啊,用户向我们发短信肯定不行。
    imxieke
        9
    imxieke  
       2016-11-22 00:01:35 +08:00 via Android   ❤️ 1
    邮箱+ 手机 +验证码(语音或发送到邮箱)+ ip +邀请码😂😂😂
    imxieke
        10
    imxieke  
       2016-11-22 00:02:55 +08:00 via Android
    对了 或者可以和微信或者 QQ 绑定 Cloudxns 就是通过关注官方公众接受验证码的
    imxieke
        11
    imxieke  
       2016-11-22 00:03:24 +08:00 via Android
    微信我就不信他有 n 个 😏
    macroideal
        12
    macroideal  
       2016-11-22 00:18:55 +08:00 via iPhone   ❤️ 1
    有一个专门帮别人验证手机号的,可以挡 90%的可疑手机号
    不过很贵,一年 10 万
    ipconfiger
        13
    ipconfiger  
       2016-11-22 00:19:36 +08:00
    @imxieke 微信有 N 个的不在少数
    iannil
        14
    iannil  
       2016-11-22 01:15:54 +08:00   ❤️ 4
    专门做过类似的服务,不差钱的话,直接上腾讯云( https://www.qcloud.com/product/rp.html

    如果想不花钱通过技术手段限制的话,做好长期作战的准备。
    伪造身份进行注册无非这几个方面:设备指纹、 IP 、手机号。
    据我所知,手机号和 IP 都是有渠道大量供应的,你防不了。

    唯一能用技术防范的就是设备指纹。就是通过设备的各种信息,加上服务端拿来的一个加密串,计算得到一个值,然后设置一个阀值,如果计算得到的值超过这个阀值,就显示验证码、邮箱验证、滑块验证等加大注册难度。低于阀值就正常注册,一个短信验证码解决注册。
    最低限度的保护正常用户,防范恶意用户。这个设备指纹的计算方法和阀值是根据不同业务场景而变化的,除非本身就做过类似的服务,否则很难拿捏好尺度。

    如果是 app 的话, ios 我不太熟,安卓可以在某个隐秘位置写一个看似无意义的文件或伪装成普通日志文件,然后把一些信息写进去。大多数安卓下伪造设备都是用 xposed ,如果不专门监听文件写入事件的话,破解者不会发现这个文件,修改设备信息或清空缓存都不会删除这个文件。他伪装新机去注册的时候, app 可以先检查这个文件是否存在,拿这个文件里的内容信息和库里进行比对做为参考。

    多说一句,图形验证码因为云打码的出现基本已经没啥用了,语音验证码因为本身是机器合成的声音,吐字清晰,语速匀称,在安卓端可以拦截通话然后录音,然后扔语音识别拿到结果。最多就是加大难度,但无法根除。

    其实楼上说用微信的是一个不错的切入点,可以在用户方便和安全上达到一个平衡。
    因为微信本身就是恶意注册泛滥的地方,腾讯这块做的很完善了已经,这也是为什么我开头推荐腾讯云。

    直接用微信登录,用户进来了,再建议他绑定手机号,是目前看起来最简便可行的方案了。恶意注册的人想要破坏,就先得有大量微信号,一个微信号的成本是一个手机号的 10 倍,甚至 20 倍。

    希望能帮到你。
    Felldeadbird
        15
    Felldeadbird  
       2016-11-22 09:30:20 +08:00 via iPhone   ❤️ 1
    上验证码加 ip 限制则可大大限制。
    tomczhen
        16
    tomczhen  
       2016-11-22 09:36:33 +08:00   ❤️ 1
    @x537196 我没说通过 IP 限制有用,只是你不做,会被更加滥用。另外,如果你的平台账号价值可以吸引到人大量注册我觉得你应该先高兴才对(有什么奖励推广的情况下例外)。

    防御手段不是没有,但是想达到“完全避免”成本就比较高了。所以防御的思路不是“完全避免”,而是提高攻击者的“成本”,只要收益小于成本,没人无聊到花时间来搞你的。
    x537196
        17
    x537196  
    OP
       2016-11-22 10:10:23 +08:00
    @tomczhen 好的,谢谢回复
    x537196
        18
    x537196  
    OP
       2016-11-22 10:55:06 +08:00
    @iannil 谢谢你的建议
    cedarxi
        19
    cedarxi  
       2016-12-19 21:40:30 +08:00
    极验证,妥妥的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2787 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 04:08 · PVG 12:08 · LAX 21:08 · JFK 00:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.