首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >注册密码的最佳做法?

注册密码的最佳做法?
EN

Stack Overflow用户
提问于 2015-02-18 08:54:52
回答 3查看 2.6K关注 0票数 1

我有一个网站,用户注册一个帐户。在注册字段上,表单字段是:

  • 名字
  • 电子邮件
  • 确认电子邮件
  • 用户名

但是没有密码字段。当他们点击提交时,他们会通过电子邮件发送一个非常复杂的密码,例如LHJVjhwnv%uu5RbWM9!jeDZUQb.。

我已经呼吁我的开发人员来代替它,以便用户可以在注册表格上设置他们自己的密码。若要在窗体上确认密码,请发送到其指定电子邮件的确认链接。这样,他们至少可以登录到他们的帐户,并核实他们的电子邮件通过确认链接。或者,如果他们没有,每次他们登录到这个网站时,都会提醒他们核实他们的电子邮件等等,否则他们就不能在网站上做太多事情(例如)。这样,即使他们没有得到的确认链接,他们仍然可以更新他们的帐户电子邮件到一个不同的电子邮件,并让它怨恨。至少在这个阶段,他们可以登录他们的帐户,而不是,而不是

我从开发人员那里得到的答复如下

“在注册时提供密码的问题是,你会有大量的假账户。因此,那些只使用一个不存在的电子邮件地址注册的人。至少在某种程度上,通过电子邮件验证,你证明了用户的存在。如果他们注册了错误的电子邮件,他们就可以重新注册。”

,我想问大家,开发人员目前采用的方法是否可以接受?

如果不是,我可以用什么好的理由来说服开发人员改变呢?

我试着解释了以下几点

  • 每天有9-10人注册,然后在之后直接使用“密码重置”表单。这份表格涉及他们把他们签署的电子邮件地址,然后它电子邮件给他们一个链接设置一个新的密码。因此,如果他们正在设置一个新的密码无论如何,为什么不让他们把它放在注册表格的第一位呢?为什么每天都会有9-10人在注册后直接使用密码重置字段?我很确定,这是因为他们似乎在为这些复杂的密码(我并不反对)而挣扎,这些密码被发送给他们,丢失了一个键或字符,或者似乎没有意识到复制/粘贴之类的东西。如果他们只需在第一次访问时设置自己的密码,他们就不需要在密码重置字段中运行,因为他们的电子邮件密码无法工作。我觉得奇怪的是每天都会有密码重设邮件。不是每个人都喜欢,但自从我开始用Mandrillapp追踪发送出去的电子邮件以来,每天有9到10个人。这是由下一点支持的。
  • 每天至少有2-3人填写联系人表格,表明他们收到的密码无效。如果他们能自己设定的话,一切都是可以避免的。可能会有更多的事情不去联系。
  • 在近8000个账户中,50%从未登录过。我强烈怀疑,包含他们密码的注册电子邮件会转到他们的垃圾文件夹/垃圾邮件文件夹。这是尽管我有适当的SPF,DKIM等设置。两个月前,我决定开始用Mandrill来发送邮件,以确保邮件被发送到收件箱,但是每天至少有1-2个人说他们没有收到的电子邮件。这让我很困惑。如果他们可以定义自己的密码,他们就不用担心通过电子邮件等待他们的密码,或者没有完全得到密码。这只是进一步强调了我最初的关切。

谢谢您抽时间见我!

EN

回答 3

Stack Overflow用户

发布于 2015-02-18 10:22:35

我假设您已经设置了一个工作密码重置页面,因此您可以使用相同的代码来进行注册:

  1. 让用户用他的电子邮件注册。
  2. 将带有令牌的链接发送给用户,令牌的散列存储在数据库中。
  3. 如果用户单击链接,如果令牌是有效的,欢迎他并让他输入自己的密码。

这正是您已经拥有的密码重置,您的网站变得不再安全,因为攻击者还可以使用密码重置功能。

当然,弱密码是一个问题,所以拒绝弱密码是必须的。同样,这也是您必须在密码重置页面上所做的事情。对于密码重置,您也不会发送明文密码。

未经确认的帐户可以删除一定时期后,这意味着用户没有对它做任何事情。如有必要,用户可以再次注册。只有当用户在进行确认之前不被允许登录时,这才有效,支持上述过程的是什么。当然,这取决于网站,如果这个确认是那么重要的。

票数 1
EN

Stack Overflow用户

发布于 2015-02-18 09:15:30

在邮件中不发送密码的主要原因是安全性:邮件不是安全介质。如果你在里面放了一个密码,那么很多人都能看到它--考虑让人们不用任何密码就可以使用你的服务,而不是为了理解我的意思。

允许人们选择自己的密码的主要缺点是password

大多数大型网站使用这种方法来平衡安全性、业务需求和舒适度:

  • 允许用户设置自己的密码。拒绝最简单的(这里有库)。注意:复杂的密码规则会把客户赶走。
  • 通过邮件发送确认链接。
  • 在点击链接之前,不要允许登录。
  • 如果他们试图无论如何登录,告诉他们必须先点击链接,并提供一个“发送确认链接再次”的链接,以防第一封邮件丢失。
票数 0
EN

Stack Overflow用户

发布于 2015-02-18 09:39:18

我已呼吁我的开发人员代之,以便用户可以在注册表格上设置自己的密码.

这将使您面临过多的弱密码和重用攻击。重用已经被经验性的研究和报告50%至76%。其他学术研究也提到了几乎所有用户(几乎100%)都重复使用密码

因此,分配密码有助于解决重大的实际问题。在您分配密码之后,您将受到相同的攻击,尽管如此,因为用户可能在另一个站点上重用指定的密码。

..。我想问大家,开发人员目前采用的方法是否可以接受?

是的,只要密码符合安全要求,就可以接受。我甚至更喜欢它,尤其是当用户选择的密码是而不是与错误的密码列表进行检查时。

错误的密码列表很重要,因为我们知道攻击者使用它们。由于过去的所有漏洞,它们上有数百万的密码(我有没有提到密码重用是一个普遍的问题?)这些列表很容易找到,一位研究人员最近公布了他的6,000,000+列表。见我如何收集密码

关于电子邮件和纯文本,Aaron是正确的。实际上,您可以放置另一个安全控制来限制暴露。也就是说,要求您的邮件服务器使用SSL/TLS或失败连接。

或者,生成密码并将其显示给屏幕上的用户。指示用户打印密码,这样他们就不会忘记密码。我甚至告诉我的用户写下来,并把他们放在他们的钱包或钱包。

主要威胁是基于网络的攻击者试图通过弱/受伤/坏密码获得对服务器的未经授权的访问。因此,一封带外/出渠道的电子邮件并不是什么大问题。丢失的钱包或钱包也不是什么大问题。关注的问题是基于网络的攻击者猜测密码或使用来自其他网站的入侵的{username,passwords}元组。

每天都有9-10人注册,然后直接使用“密码重置”表单。这份表格涉及他们把他们签署的电子邮件地址,然后它电子邮件给他们一个链接设置一个新的密码。

好的,这是一个安全缺陷,因为用户可以绕过安全控制。

至于它的价值,我经常使用随机密码生成器为帐户生成密码。我甚至懒得把它们写下来。当我需要访问帐户时,我只需通过丢失的密码处理。

这些东西对我来说是多么的低价值。每个该死的网站都需要一个用户来管理一个帐户和密码。我厌倦了把精力花在管理所有的账户上,所以我甚至不会把周期浪费在上面。

在注册时提供密码的问题是,你会有大量的假帐户。所以那些用一个不存在的电子邮件地址注册的人。至少在某种程度上,通过电子邮件验证,您可以证明用户的存在。如果他们用错误的电子邮件注册,他们可以重新注册。

好吧,这是另外一个问题。BOT注册通常通过CAPTCHA来减轻。我从来没有真正研究过如何使用真实用户/假帐户。

假账户的好处是什么?在我看来,用户是想让一半怀孕。他们要么有账户,要么没有账户。

在近8000个账户中,50%从未登录过。我强烈怀疑,包含他们密码的注册电子邮件会转到他们的垃圾文件夹/垃圾邮件文件夹。这是尽管我有适当的SPF,DKIM等设置。

嗯,这是一个不同的问题(您应该通过测试来确认)。这意味着显示用户的密码,并告诉他们打印页面。

密码管理的主题还有很多。你应该读一下彼得·古特曼的“工程安全”第7章。

我吸引了我的开发商..。

最后,你才是老板。如果开发人员或承包商没有按照要求执行指示或编码,则解雇他们。我会被诅咒的,在我乞求一个我为服务付钱的人。

程序员是十分之一的,你可以在像租金-A-编码器这样的地方找到他们中的很多。印度人和巴基斯坦人几乎一无所获(在某些情况下,每天不到10美元)。我不知道他们怎么能干这么少活下来.

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28579448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档