专门做过类似的服务,不差钱的话,直接上腾讯云(
https://www.qcloud.com/product/rp.html )
如果想不花钱通过技术手段限制的话,做好长期作战的准备。
伪造身份进行注册无非这几个方面:设备指纹、 IP 、手机号。
据我所知,手机号和 IP 都是有渠道大量供应的,你防不了。
唯一能用技术防范的就是设备指纹。就是通过设备的各种信息,加上服务端拿来的一个加密串,计算得到一个值,然后设置一个阀值,如果计算得到的值超过这个阀值,就显示验证码、邮箱验证、滑块验证等加大注册难度。低于阀值就正常注册,一个短信验证码解决注册。
最低限度的保护正常用户,防范恶意用户。这个设备指纹的计算方法和阀值是根据不同业务场景而变化的,除非本身就做过类似的服务,否则很难拿捏好尺度。
如果是 app 的话, ios 我不太熟,安卓可以在某个隐秘位置写一个看似无意义的文件或伪装成普通日志文件,然后把一些信息写进去。大多数安卓下伪造设备都是用 xposed ,如果不专门监听文件写入事件的话,破解者不会发现这个文件,修改设备信息或清空缓存都不会删除这个文件。他伪装新机去注册的时候, app 可以先检查这个文件是否存在,拿这个文件里的内容信息和库里进行比对做为参考。
多说一句,图形验证码因为云打码的出现基本已经没啥用了,语音验证码因为本身是机器合成的声音,吐字清晰,语速匀称,在安卓端可以拦截通话然后录音,然后扔语音识别拿到结果。最多就是加大难度,但无法根除。
其实楼上说用微信的是一个不错的切入点,可以在用户方便和安全上达到一个平衡。
因为微信本身就是恶意注册泛滥的地方,腾讯这块做的很完善了已经,这也是为什么我开头推荐腾讯云。
直接用微信登录,用户进来了,再建议他绑定手机号,是目前看起来最简便可行的方案了。恶意注册的人想要破坏,就先得有大量微信号,一个微信号的成本是一个手机号的 10 倍,甚至 20 倍。
希望能帮到你。