security - 注销后是否应该存储电子邮件地址?

标签 security language-agnostic passwords remember-me

我为 Web 应用程序编写了一个附加组件,它将“记住我”复选框插入到登录表单中。我的一位用户对注销后不被记住感到惊讶!显然,已注销的人应该保持注销状态,尽管有特定请求,我也不会填写密码字段,因为这意味着以明文形式存储密码。

我的问题是,如果用户之前标记了“记住我”框,是否应该预先填写登录表单的电子邮件地址/用户名?
显然,如果在公共(public)计算机上完成,将有效地将他们的个人详细信息广播给使用该计算机的下一个陌生人,但用户无论如何都不应该在公共(public)计算机上使用“记住我”选项。

这样做的安全考虑是什么?用户是否希望在注销后记住他们的一些详细信息?

编辑:我发现浏览器都有一个功能来记住表单值和登录详细信息,也许这没有必要。

最佳答案

如果有人使用了“记住我”功能,您绝对不应该预先填充电子邮件/登录名。请记住,此功能(通常也称为“保持登录状态”)旨在跨 session 保持登录状态。这是一项可用性功能,可让用户在每次访问网站时无需重新进行身份验证。

不是在显式注销后保留登录凭据任何部分的方法。是的,浏览器可以记住表单字段值,例如登录名,但大多数安全指南明确建议禁用此功能(请参阅 OWASP Top 10 for .NET developers part 3: Broken authentication and session management )。

就安全系统而言,我当然不认为用户会仅仅因为绝大多数网站不以这种方式运行而期望预先填充这些数据。如果在明确同意的情况下降低进入阈值是可以的,但当用户明确退出或结束其 session 时,或者当行为与他们的预期不一致时,就不行了。

关于security - 注销后是否应该存储电子邮件地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6889962/

相关文章:

java - 从java中的内存中删除安全数据

Websphere 7 中 Axis2 1.4 的 Java 2 安全性

security - 目前哪种哈希函数是密码的最佳选择?

recursion - 从递归到迭代的方法

algorithm - 使用 order 属性重新排序对象

mysql - 使用 mysql 5.5.8 命令行设置密码的正确语法

passwords - 恢复 MySQL 数据库的问题 - mysqldump 问题

java - 为什么这个看似等效的 SecurityManager 代码会导致虚假异常?

javascript - 在单页 Web 应用程序中保护数据库查询

language-agnostic - 如何抑制自己重写一切的强烈冲动?