Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 重置密码还是将丢失的密码发回更好?_Security_Email_Passwords - Fatal编程技术网

Security 重置密码还是将丢失的密码发回更好?

Security 重置密码还是将丢失的密码发回更好?,security,email,passwords,Security,Email,Passwords,当用户忘记密码时,是让他们重置密码更好,还是只将丢失的密码发送回给他们更好?重置密码更安全,因为第三方可以截获邮寄的密码 编辑:通过重置,我假设您指的是向用户发送令牌的常见模式,该令牌允许用户定义新密码。显然,如果您只是生成一个新密码并将其发送到邮件中,它与发送原始密码一样不安全。令牌当然只能使用一次,否则它将与密码一样好 这里唯一的风险是第三方在用户之前拦截令牌并更改密码。这比发送密码的风险更低,因为只要密码在使用中,截获的密码就会有用,而令牌只有用一次,您将发现是否有人使用了令牌 请注意,最

当用户忘记密码时,是让他们重置密码更好,还是只将丢失的密码发送回给他们更好?

重置密码更安全,因为第三方可以截获邮寄的密码

编辑:通过重置,我假设您指的是向用户发送令牌的常见模式,该令牌允许用户定义新密码。显然,如果您只是生成一个新密码并将其发送到邮件中,它与发送原始密码一样不安全。令牌当然只能使用一次,否则它将与密码一样好

这里唯一的风险是第三方在用户之前拦截令牌并更改密码。这比发送密码的风险更低,因为只要密码在使用中,截获的密码就会有用,而令牌只有用一次,您将发现是否有人使用了令牌


请注意,最高的风险可能不是人们偷听电子邮件流量,而是有人稍后查看您的邮件,或侵入您的网络邮件帐户,因此,邮箱中仍然有有效的密码是非常糟糕的。

发送丢失的密码意味着您将密码保存在纯文本中或以双向加密方式加密,这是不安全的

我建议使用以下Wordpress机制重置密码:

  • 发送一个链接,确认 密码重置
  • 按照确认链接进入页面 这将生成随机密码 并将其发送给用户
  • 让用户使用新密码和密码登录 把它换成更好的 记住

  • 首先,您不应该能够发回密码。您最好的机会是生成一个随机一次性使用密码,并将其发送到用户的注册电子邮件地址


    你可以设置安全问题(比如“你的第一只狗的名字”)和其他神秘主义,但我相信用户往往会忘记这些问题的答案,甚至超过他们的密码,这让你回到了原点。

    许多用户在许多网站上使用相同的密码。为了尊重人们的隐私,建议始终使用哈希函数(如SHA-256或MD5)单向加密存储密码。但是您不应该在没有任何附加salt的情况下使用它们,因为字典攻击可以简单地对这些密码执行。保护用户隐私是您与客户之间建立信任关系的基础

    我还推荐Eimantes提到的密码重置机制。确认电子邮件是此过程中的主要任务。始终让用户确认其密码重置请求,以避免虚假请求导致无法访问帐户

    您可以将用户转发到可以输入新密码的页面,而不是计算随机密码


    还要记住,在没有ssl的情况下通过http发送密码是非常不安全的,特别是在公共网络(如wlan热点)中。看看消息身份验证方法,比如与Diffie-Hellman密钥交换相结合。或者至少在登录时使用一个附加的hash+salt函数。

    那么,在邮件不安全的情况下,用户如何获得重置密码呢?:)@格雷格:这就是重点。邮寄“随机密码”或“用户可用于……”的随机值之间没有区别。您可以同时使用它们来临时标识用户。第三方可以篡改其中任何一个。好吧,当网站知道用户的唯一确定信息是他们的电子邮件地址时,在我们解决加密电子邮件问题之前,我们不会解决这个问题,是吗?很大的区别,但不是安全方面,而是可用性方面。对于用户来说,直接点击链接并显示“选择新密码”对话框确实比临时密码更容易,用户必须复制并粘贴(或键入)到其他地方,然后点击enter。。。还有很多不需要的步骤^^^(但也应该作为故障保护存在)@Gumbo:所以不要让用户保留密码。在第一次登录后强迫他/她更改密码。如果有任何问题,这是信任的问题-你真的想让你使用的每个站点的管理员知道你选择的密码吗?当然,在理想情况下,人们会对每个网站使用不同的密码,但实际上很少有人这样做——这太麻烦了。只需在Eimantas的回复中添加一点。为了安全起见,服务器不应以明文形式保存用户密码。它应该保存单向加密密码。当用户登录时,客户端应使用javescript加密密码,并将加密字符串发送到服务器。这有点像Unix登录的工作方式。用户经常对不同的网站使用相同的密码。如果你把它保存在纯文本中,你就可以访问所有的内容。作为一名用户,我会对此深感担忧。@lh3在客户端使用JavaScript对其进行加密,然后将其发送到服务器?你是认真的吗?用Javascript散列密码几乎没有增加安全性。安全应该在服务器端完成,使用SSL保护客户机-服务器通信。Javascript不适合此工作。只应存储密码的哈希值;密码本身不应存储在任何服务器上。但是,如果您使用(in)安全问题,则不能将其视为备份密码,而只能将其视为访问密码重置机制的网关守护者。否则,当有人查找你上过的高中并试图回答“你在哪里见过你的配偶?”时,你的电子邮件帐户就会被入侵(就像萨拉·佩林去年遇到的那样)。但重要的是,只有在收到初步确认电子邮件后才发送随机密码。如果你错过了这个,恶意的人可以点击请求密码按钮,输入你的电子邮件地址,让你的帐户无法访问。如果您想在不检查电子邮件的情况下使用原始密码登录,请