用户账户安全,授权和暗码管理的12个最佳实践鹏越·安全

导语
账户管理,授权和暗码管理每每是很棘手的。对许多开辟者来说,账户管理功能是一个暗角,不会引起充足的器重。对于产物司理和用户来说,产物的最终体验每每超出预期。荣幸的是,谷歌云平台(GCP)提供了一些工具,可以 ...


账户管理,授权和暗码管理每每是很棘手的。对许多开辟者来说,账户管理功能是一个暗角,不会引起充足的器重。对于产物司理和用户来说,产物的最终体验每每超出预期。

荣幸的是,谷歌云平台(GCP)提供了一些工具,可以或许使你在产物创造、安全处置惩罚和用户账号(本文中指任安在你体系中注册的人——消耗者大概内部用户)认证方面做出更好的决议。岂论你负责的是什么体系,摆设在 Google Kubernetes Engine 上的WEB网站、 Apigee 上的API服务、利用 Firebase 的应用大概任何包罗用户认证的服务,这篇文章会提供最佳实践,来包管你拥有一个安全的、可伸缩的、可用的账户认证体系。

1. 对暗码字段做哈希处置惩罚

对于账户管理,最紧张的原则就是要安全地存储用户的敏感信息,包罗用户的暗码。用户的数据是神圣的,必须要得当的处置惩罚。

任何环境下都不要存储明文暗码。你的服务中要艺术的哈希处置惩罚暗码,而且不能解密暗码——比方,利用 PBKDF2, Argon2, Scrypt, or Bcryp创建。这个哈希值应该是对用户唯一的登录凭据加盐处置惩罚后的效果。不要利用过期的哈希处置惩罚技能如MD5、SHA1,而且在任何环境下都不应该利用可解密的算法大概实验发明哈希算法。

你应该假设你计划的体系最终会被泄漏。问问你本身“假如我的数据本日泄漏了,在利用我的服务大概他们利用的别的服务时,我的用户的安全和隐私会受到威胁吗?我们可以做些什么来减轻这种潜伏的数据泄漏大概造成的危害?”

另一个必要思量的事变:当用户提供给你暗码之后,假如你能在任何时间产出一个用户的明文暗码,那么你的实现就是有题目的。

2. 尽大概答应第三方身份认证

第三方身份认证提供者使你可以依靠一个第三方值得信任的服务认证用户的身份。谷歌、Facebook和推特通常是可用的提供者。

除了已经存在的内部认证体系,你可以利用一个平台(如 Firebase 认证)接入一个第三方的认证服务。 Firebase 认证有许多利益,如管理更简朴、攻击入口更小和跨平台的SDK。通过这个列表我们会提出许多利益,详细检察 案例学习

Firebase认证。

3. 区分用户身份和用户账户的概念

你的用户不是电邮地点。他们不是电话号码。他们不是由OAUTH相应提供的唯一ID。 你的用户是你服务中独有的个性化数据和体验的聚合。计划精良的用户管理体系在用户个人资料的差别部门之间具有低耦合性和高内聚性。

保持用户帐户和证书的概念分离将大大简化实行第三方认证提供商的过程、答应用户更改其用户名并将多个身份链接到单个用户帐户上。现实上,为每个用户提供一个内部全局标识符并通过该ID链接其设置文件和身份验证标识大概会有所资助,而不是将其全部会合到一条记载之中。

4. 允很多个身份关联到单个用户账号

一开始利用 用户名和暗码 认证登录到服务的用户,背面大概会利用 Google Sign-In 来登录。他们并不知道这会创建多余的账号。雷同地,由于某些缘故原由,服务中的一个用户大概会关联到多个电子邮箱。假如能精确的分离用户身份和认证信息,将 多个身份链接 到同一个用户就会变得简朴。

你的背景必要思量到用户大概会通过一部门乃至全部途径来通过注册过程,但他们并没故意识到在新的第三方身份没有关联到他们已经存在于体系中的账号。最简朴的实现是要求用户提供一个共同的细节用于辨认,好比电子邮件地点,电话或用户名等。假如该数据与匹配到体系中现有的用户,则要求他们认证已知身份并将新的 ID 关联到已存在的账号上。

6.不要为用户名强加不公道的规则

有些网站或服务要求用户名的字符数不低于两三个字符,不答应不可见字符,前后不能有空格,这些都毫无原理。然而,有些网站会要求最小长度为 8 个字符,只答应利用 7 位(bit) 的 ASCII 字母和数字。

在网站上严酷限定用户名,大概会为开辟者带来方便,但在某些极度环境下对用户的要求会让某些用户望而却步。

某些环境下最好的办法是指定用户名。假如你的服务中碰到这种环境,必要确保指定的用户名对用户来说很轻易想起来也很轻易告诉别人。字母数字组合的 ID 应该制止视觉上不易辨认的符号,好比“Il1O0”。同时还发起对随机天生的字符串举行字典扫描,确保用户名中没有不测嵌入一些信息。这一原则同样实用于主动天生的暗码。

7.答应用户更改他们的用户名

在遗留体系或任何提供电子邮件帐户的平台中,不答应用户更改其用户名黑白经常见的。这里有许多 好的来由 支持不主动开释用户名以供重复利用,但体系的恒久用户最终会给出一个很好的来由来利用差别的用户名,而且他们大概不想创建新的帐户。

你可以通过答应别名并让你的用户选择主别名来满意用户盼望更改其用户名的愿望。你可以在此功能之上应用所需的任何业务规则。某些组织大概每年仅答应更改一次用户名,或将制止用户表现除主用户名以外的任何内容。电邮供应商大概会确保用户在将老用户名从其帐户中分离出来之前充实得相识了相干风险,大概大概完全克制将老用户名断开链接。

为你的平台选择符合的规则,但要确保它们答应你的用户随着时间的推移而发展和改变。

8.答应你的用户删除本身的账号

相称数目的服务没有效于用户删除其账户及相干数据的自助服务本领。用户永世关闭帐户并删除全部个人数据有许多好的来由。这些题目必要根据你的安全行和合规需求举行均衡,但大多数受羁系的情况提供了有关数据保存的详细引导。制止合规和黑客攻击的常看法决方案是让用户本身规划其帐户以备未来主动删除。

在某些环境下,你大概必要 依照 用户的要求,实时删除其数据。假如发生数据泄漏,对于发生“已关闭”帐户的数据泄漏环境,你还可以大大进步你的曝光率。

9. 在会话长度上故意识地做决定

在安全验证上经常被忽略的是 会话长度 。Google 作出了一些积极来 确保用户的举动 并举行双重查抄,这重要基于某些变乱和举动。用户可以有步调地 进一步增强他们的安全性 。

服务可以有明白的来由来保持会话,而不黑白关键分析目标无穷期开放,但是,应该有一个 门槛 来要求您输入暗码、或第二个因素或其他用户验证。

思量多久的时间用户应该认证,并明白之前是不活泼的。假如有人举行暗码重置,就必要验证全部运动会话的用户身份。假如一个用户更改焦点方面的设置文件或当他们实行敏感的举措,应该提示身份验证或第二因素。并思量不答应从多个装备或位置登录是否故意义。

当你的服务用户会话到期或必要重复认证,提示用户及时或提供一种机制来掩护任何运动来生存未生存的末了验证。用户填写表单,提交它一段时间后,发现他们全部的输入已经丢失,他们必须再次登录,这黑白常令人沮丧的。

(泉源:红黑同盟)


《北京人资》,作为一个小众的人力资源社区,自成以来一直默默的为数以万计的HR从业者提供着专业支持和生活帮助并见证着彼此的成长。北京人资在秉承有趣、有料、链接、共享的理念创建者我们的平台并等待您的加入。如果你是一个活泼、严肃、积极、有趣并一直在寻找同类人群的HR,请扫描下面的二维码,加入到我们中来吧,和我们一起,快乐链接,幸福成长。北京人资网 www.bjrz.net
返回顶部