是否应该允许用户在浏览器中保存密码?

信息安全 应用安全 Web应用程序 密码 验证 网页浏览器
2021-08-21 02:36:17

审计公司发现“密码字段中设置了自动完成表单属性”的错误。他们建议禁用此字段的自动完成功能,以防止“在共享环境(例如 Internet 咖啡店)工作时”泄露它

但是禁用自动完成属性并不会阻止浏览器在注册时存储密码。如何防止用户在浏览器中存储密码?(即注册或登录后浏览器弹出“您要保存此密码吗?”)

在用户的浏览器中存储密码可能是危险的,因为木马可以窃取它。然而,自动完成密码可能会帮助键盘记录器和躲在肩膀后面的人。那么是否应该允许用户在其浏览器中存储密码?

2个回答

这里有不同的功能。浏览器提供自动完成具有先前输入值的文本字段,这需要存储先前在同一字段中输入的值的历史记录。此历史记录以明文形式存储,无需任何用户反馈。密码字段永远不应受到此类历史存储和自动完成的影响。

浏览器还具有专门针对密码的独特功能。密码(网页声明的密码)只有在用户明确回答“是”的提示时才会被存储——大多数浏览器都会询问“你想保存密码吗?是/否/从不为本网站”。此外,用户可以将主密码存储在密码存储中,从而在用户不使用计算机时保护密码。

在大多数情况下,您应该这样声明密码,并允许将它们保存在浏览器中。这将密码安全的责任推给了用户,正如 Tom Leek 解释的那样,这通常是正确的做法。如果您不这样做,用户可能会将密码写入文本文件。如果用户使用共享或安装了木马的计算机,他们无论如何都会迷路。如果用户同意密码存储,那么拒绝他该功能将无济于事。

您不能阻止用户在便签上写下他的密码,并将其“隐藏”在键盘下。您不能阻止用户将他的密码提供给他的妻子、朋友和同事。你不能阻止用户选择刺在他的狗耳朵上的 ID 作为密码(甚至有一个来自法国大银行的广告正是在宣传这一点)。就此而言,您无法阻止用户在 Internet 咖啡店机器上输入密码,由于键盘记录器的威胁,这已经是一个坏主意。

所以我倾向于说密码安全是用户的责任,如果他打算做一些愚蠢的事情,你无法真正阻止它。

请注意,“自动完成”有点不同,因为它是关于 Web 浏览器自动填充数据而不管目标页面如何;通常,“保存的密码”功能在浏览器中与特定页面(或站点)相关联,因此它不会出现自动完成的非密码字段元素所具有的隐私问题(并且您的审计公司正确地指出了这一点) . 密码保存应该由浏览器本身小心处理。

尽管如此,似乎有一些方法可以防止页面本身或至少与您有同样担忧的人存储密码,这可能是出于管理原因,这些原因可能会或可能不会得到合理证实;例如,请参阅StackOverflow 上的这个问题