繁体   English   中英

为什么设计不对reset_password_token和Confirmation_token进行哈希处理?

[英]Why does devise not hash reset_password_token and confirmation_token?

我发现Rails的设计认证框架不会在数据库中对reset_password_token和confirmation_token进行哈希处理? 有人知道为什么吗?

显然,将这​​样的值以纯文本格式存储在数据库中是一种不好的方法,因为有权访问数据库的每个人都可以重用令牌并将令牌直接发送给API(例如,无需访问就可以轻松触发密码重置)到电子邮件)。 此外,这只是将哈希存储在数据库中的最小工作。 这就是为什么我想知道这种普通令牌方法背后的想法是什么?


更新:没有人对此有任何看法吗? 从我的角度来看,这是一个安全问题,但看来我是唯一关心该问题的人:D

在数据库中将它们散列将毫无意义。 确认/重置电子邮件仍然必须向用户发送令牌,应用程序可以使用该令牌根据您存储的哈希密钥来识别他们(邀请/密码重置令牌)。 如果将其存储为纯文本或双向加密,那么您将遇到完全相同的问题,因为黑客可能只使用纯文本令牌,而您的应用程序会很高兴地对其进行哈希处理并对其进行身份验证。 如果将其存储为1向加密,则您的应用将无法提取应发送给用户的实际令牌。

有人必须知道密码/令牌的真实,完整版本。 在密码中,实际密码存储在用户的头部。 在这种情况下,则需要将实际令牌存储在数据库中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM