注册登录功能设计01:注册功能中的风控策略
对于多数产品而言,用户账户体系都是必不可少的,有些产品拥有独立的账户体系,有些则授权给第三方。但无论是自身独立的账户体系,还是授权于外部的账户体系,对于这一模块的风险控制是十分重要的。
作为产品经理,在设计账号注册/登录基本功能时,也必须考虑隐藏在功能背后的产品策略,其中很重要的一项就是账号的风控策略。
注:有的互联网公司没有自己的独立账号体系,只有微信/微博/QQ第三方账号授权登录,这部分的工作(包括账号管理、账号安全、业务授权)相当于是交给了第三方。
为什么需要账号风险控制?
防止账号被盗:互联网用户账号信息泄露严重,黑客/入侵者利用“社工库”①已收集的用户名、密码等信息进行撞库②攻击,可以获取平台用户账号,给用户账号和资产带来风险;
防止恶意刷号:账号本身如果能产生经济价值(如拥有游戏资产的游戏账号、拥有大量粉丝的社交账号等),恶意者通常会大量注册账号、转售进行获利,留给平台的则是大量非真实用户的垃圾账号;
防止恶意攻击:防止恶意者高频次请求攻击,导致服务器瘫痪、宕机,影响正常用户使用。
- 注①:撞库是黑客通过收集互联网已泄露的用户和密码信息,生成对应的字典表,尝试批量登陆其他网站后,得到一系列可以登录的用户。很多用户在不同网站使用的是相同的账号密码,因此黑客可以通过获取用户在A网站的账户从而尝试登录B网址,这就可以理解为撞库攻击。
- 注②:社工库,就是黑产的地下数据库,这些库里保存了大量真实的、配对的用户名/密码、身份证号等用户信息。其广博的深度,恐怕不比任何“大数据公司”差。黑客们盗取的数据,都留存在社工库中,供黑客们查询。
注册功能中的风险点和风控目标
常见的手机号注册功能
邮箱注册功能
1、账号验证功能的风控
当用户输入手机号,光标离开“手机号码”输入框时,通常我们会立即给用户反馈,这个手机号是否已经被注册,示例如下:
在这里,实际上是前台页面向服务器发起了一次查询请求,服务器查询账号并返回查询结果,从而可以在页面上给用户进行正确的反馈。
由于账号文本框需要向服务器请求账号查询结果,如果我们没有设计风控体系。在这里恶意者可以通过这个功能,做以下几个事情:
- 利用已经获得的社工库账号资料,通过技术手段,大量验证“用户账号是否存在”,从而知道手里的账号哪些是已经在平台上注册过的账号。
- 账号验证需要向服务器发起请求,因此恶意者可以用技术手段大量发起请求攻击,导致网络、服务器和数据库瘫痪甚至宕机。
因此在这里,我们需要做一个关于“账号输入框”的风控策略目标:禁止非正常的、大量的“验证账号是否存在”的服务器请求;
2、手机账号真实性的风控
为了保证用户输入的手机号是其本人的,通常我们都需要设计短信验证码功能;
3、邮箱账号真实性的风控
为了保证用户输入的邮箱是其本人的,通常我们都需要设计邮件验证码功能或者通过邮件进行激活确认的功能;
4、短信通道、真实手机号的风控
短信验证码是业务系统利用运营商或者代理商的短信通道,下发验证码,对用户所输入的手机号进行真实验证的功能。
为了防止恶意者攻击短信通道,或者随意输入其他人的手机号滥发短信给其他人造成骚扰,这里需要增加两项风控:保护短信通道、减少对其他手机号短信骚扰。
5、注册请求的风控
当用户将所有信息都填写完成,点击“立即注册”按钮即可向服务器发起请求,程序判断用户填写的信息完整无误,则返回注册成功的提示;如果判断某些输入项有问题,则返回对应的错误提示。
这里需要增加两项风控:防止用户恶意大量请求攻击服务器,防止用户绕过输入项验证直接提交注册请求。
综上所述,在注册功能中,我们需要考虑的风险点和风控目标可以归纳为:
- 禁止非正常的、大量的“验证账号是否存在”的服务器请求;
- 确保输入的手机号是用户本人的、真实的手机号;
- 邮件验证码功能或者通过邮件进行激活确认的功能;
- 保护短信通道不被恶意者大量刷短信,造成堵塞;
- 减少对其他手机号码的短信骚扰;
- 防止恶意用户大量发起注册请求,攻击服务器;
- 防止用户绕过输入项验证,直接发起请求。
如何设计风控策略
为了实现以上风控目标,我们需要对用户的操作进行一些限制。根据我们上面确定的风控目标,利用一切可以利用的数据来设置风控策略。
1、通过IP来进行限制
为了防止大量的请求攻击,我们可以通过IP对请求上限做出限制。
2、通过Cookie来进行限制
Cookie的风控触发条件和限制策略与IP相同,但是阀值不同。
3、通过用户行为间隔来进行限制
4、设置短信发送限制
通常,短信通道提供方本身就会对同一个手机同一天收到的短信条数进行限制
不过作为业务方,也需要对短信下发功能进行限制,以免被恶意用户利用。
5、设置激活确认邮件
通常,通过邮箱注册账号,平台会给邮箱发送一封验证邮件,一种是验证码;一种是需要点击邮件中的激活链接进行激活确认。
邮箱验证码方式
激活链接方式
总结
注册是账号/会员体系/SSO等功能的前提,在源头做好账号风控是账号安全和账号管理非常重要的一环。因此在设计注册功能时,设计合理且有效的风控策略也是产品的一项重要工作内容。
作者现任职空中网产品经理,负责空中网基础平台产品,包括账号通行证、充值、支付,密保APP、客服等产品,微信公众号:产品520(chanpin_520)
本文由 @蓝翼Ethan 原创发布于人人都是产品经理。未经许可,禁止转载。
题主有没有联系方式呀~
注册提示“验证账号是否存在”
这样是否存在用户信息泄露的风险?
关于Cookie那边有几个疑问:
1、如果用户清除缓存,那么Cookie也被清除了,所以用Cookie来限制就无法实现了?
2、如果客户端浏览器将Cookie功能禁用,或者不支持Cookie怎么办?例如,绝大多数的手机浏览器都不支持Cookie
刚看到拉勾和京东在注册时,都会提示输入账号的注册状态,有些疑问,文章下文就解疑了,赞!
好文~只是后续的文章没有发出来吗
游戏公司,账号需要实名认证,所以需要加上姓名和身份证,确实填的比较多
不错,基础设置是要弄好
既然注册时需要填写姓名和身份证号码以及手机号,可以通过手机认证接口,认证姓名、身份证号码和手机号码的一致性
如果手机号主人和注册账户的用户不同呢?
谁先注册就是谁的
难得的好文 收藏之
谢谢关注~