注册与登录,是绝大多数互联网应用中的一项必备功能,作为开发者的我们,基本都对该功能非常熟悉,却容易忽略了登录注册功能可能遭受的安全风险问题。
-
恶意注册
恶意注册是指不以正常使用为目的,违反国家规定和平台注册规则,利用多种途径取得的手机卡号等作为注册资料,使用虚假或非法取得的身份信息,突破互联网安全防护,批量创设网络账号的行为。
在网络空间里,每一个网络账号都是一位网民的象征和符号,而寄生在互联网上的黑灰产业,则需要大量账号为他们提供网络身份,从而隐蔽真实身份、牟取利益。这就催生了虚假账号恶意注册的互联网黑灰产业链。
-
非法用户信息
被称为“账号十条”的国家网信办最新《互联网用户账号名称管理规定》中对互联网企业提出要求:应当对互联网用户提交的账号名称、头像和简介等用户信息进行审核,对含有违法和不良信息的,不予注册。因此在注册环节、用户信息修改环节,我们都需要对用户信息进行违禁词过滤,防止出现非法内容。
-
登录处无任何安全限制、明文传输
可以看一下登录加密方案:
传输与存储的加密方案 - 乐述云享 (aleshu.com)
-
信息泄露
登陆错误提示信息太明确导致账号、密码被枚举攻击,例如提示错误信息是“用户名不存在”、“密码错误”、“手机号不存在”等可以给攻击者提供线索的信息。
-
登录错误次数未限制
登录错误次数未限制,导致密码被枚举攻击。
解决方案
-
添加人机认证
无论是注册/登录,最好都接入行为验证码,以防止恶意行为。
这里推荐使用腾讯云的验证码服务。登录可以采用智能免登录的方式进行行为验证、而注册则强制开启人工验证方式。
业务逻辑安全问题-短信安全 - 乐述云享 (aleshu.com)
-
添加违禁词检测系统
违禁词检测可以通过API的方式进行检测,如果在检测的内容不多的情况下,也比较推荐直接接入第三方服务,例如:七牛云的文本审核。
但是如果检测量较大,且还涉及到用户敏感信息,则推荐自研违禁词检测系统。乐述云享的违禁词检测系统便是自研产品。
若产品的公安备案选择的是交互式网站备案,网警也会要求网站需要具备违禁词检测及屏蔽的能力。违禁词检测系统还会用在各种场合,例如:AI 对话的输入与输出环节、用户评论、文档编辑等等。
-
限制验证码权限
验证码必须与手机号以及操作页面做关联,同时短信正文中需要告知用户验证码的权限范围,做到一事一码。避免出现手机号与验证码对上就通过验证的情况,否则就可能会出现原本用于清空回收站的验证码,被用于修改登陆密码。
-
自动登录限制
现在很多网站都有自动登录的功能,简单一点的就是将账号、密码信息保存在客户端,这样非常容易造成用户信息泄露的风险,因此研发人员可以选择使用 token 来验证用户身份,通常 token 都具有一个有效期,当有效期过期后,该 token 就会自动失效。当然自动登录也并不是意味着延长 token 的有效期,因为 token 是存储在客户端中的,自然会有人能够获取该数据,因此自动登录的意思其实就是将过期的 token 记录保存一段时间,当客户端中的过期 token 同服务器中存储的 token 配对上,且IP未发生变化,可以无感变更 token,同时完成自动登录。若未配对上,或者配对上但是IP不相符,则自动退出账号登录状态。
乐述云享也提供自动登录的服务,但是有一个前提,就是token最多保留48小时,若48小时内没有打开页面更换新的token,就会在48小时后,丢失账号登录状态。若在48小时内,在不同的IP下(即不同的WIFI/代理)打开网站,也会自动退出账号