Eim*_*tas 40
发送丢失的密码意味着您将它们保留为纯文本或以双向加密方式加密,这是不安全的.
我建议使用Wordpress机制重置密码:
Zed*_*Zed 17
您不应该首先发回密码.您最好的机会是生成随机的一次性密码,并将其发送到用户的注册电子邮件地址.
您可以部署安全问题(例如"您的第一个狗的名字")和其他神秘主义,但我相信用户往往会忘记这些问题的答案甚至超过他们的密码,让您回到原点.
许多用户在许多网站上使用相同的密码.为了尊重人们的隐私,建议始终使用SHA-256或MD5等散列函数对单向加密的密码进行存储.但是你不应该在没有任何额外盐的情况下使用它们,因为可以简单地对这些密码执行字典攻击.照顾用户隐私是您与客户之间信任关系的基础.
我还推荐Eimantes提到的密码重置机制.确认电子邮件消息是此过程中的主要任务.始终让用户确认他的密码重置请求,以避免虚假请求导致无法访问帐户.
您可以将用户转发到可以输入新密码的页面,而不是计算随机密码.
还要记住,在没有ssl的情况下通过http发送密码是非常不安全的,尤其是在像wlan热点这样的公共网络中.看看HMAC等消息身份验证方法与Diffie-Hellman-Key-Exchange的结合.或者至少在登录期间使用额外的hash + salt函数.
重置密码更安全,因为第三方可以拦截邮寄的密码。
编辑:通过重置,我假设您指的是向用户发送令牌的常见模式,该令牌允许用户定义新密码。显然,如果您只是生成一个新密码并将其通过邮件发送,那么它与仅发送原始密码一样不安全。当然,令牌只能使用一次,否则它就和密码一样好。
这里唯一的风险是第三方拦截令牌并在用户之前更改密码。这比发送密码的风险更低,因为只要密码在使用中,截获的密码就会有用,而令牌只会有用一次,您会发现是否有人使用了该令牌。
请注意,最高的风险可能不是人们窃听电子邮件流量,而是有人稍后查看您的邮件,或侵入您的网络邮件帐户,因此在您的邮箱中保留仍然有效的密码确实很糟糕。