借助 Chrome 和其他人的自动填充功能,我们如何验证用户是用户?
Posted
技术标签:
【中文标题】借助 Chrome 和其他人的自动填充功能,我们如何验证用户是用户?【英文标题】:With Chrome's, and others' forceful nature of autofill, how do we verify the user is the user? 【发布时间】:2018-03-17 18:52:38 【问题描述】:在您考虑将其标记为主要基于意见之前。请阅读。
Chrome 已经非常坚持何时自动填充表单字段。在网络上,有关于此的投诉。在 *** 中,有很多不再有效的解决方案,而且有些解决方案一开始就变得很笨拙(即:“生成随机输入名称,并解码哪个代码端”)。
在简短的测试中,Firefox 对此也有所坚持。我并没有过多地推动 Firefox,因为这两种浏览器都会中性化要求确认密码的目的。
世界上的每个开发者都可能使用过智能手机,并且了解自动填充功能有多大,但在某些情况下,它让我们没有任何工具可以衡量用户对自动填充的信心是用户,而不是双重身份验证(但如果您碰巧已注销,您的多电子邮件帐户的密码也会被保存)。
考虑这种情况。我在您的帐户中,无论是自动填充还是开放会话。我想接管帐户,所以我要做的第一件事就是更改您的电子邮件地址。
输入我的电子邮件地址。 输入自动填充或“使用密码”将提供的密码如果您之前保存过。我收到电子邮件,确认电子邮件更改。在这里,服务器也可以向旧的电子邮件地址发送电子邮件,但谁获得更高的权限——旧的或新的电子邮件地址?在此期间可以造成多少破坏? (电子邮件更改可能会因情况而延迟,但密码更改应立即进行)。令我沮丧的是,Chrome 将在更改密码表单中为标准的三个框中的每一个提供自动填充功能。
那么在现实中,我们如何合理地保证用户不再是用户?要求提供秘密答案,但 Chrome 也会将其放入自动填充中。
自动填充必须工作的本质意味着任何需要密码的脚本初学者都可以使用该密码。
【问题讨论】:
如果您的帐户已保存密码,您所要做的就是从磁盘上读取密码。这是 用户 在为网站保存密码时所面临的公认风险,而 Web 开发人员通常不需要处理这种风险。 (如果您可以访问此处描述的电子邮件帐户,您甚至不需要保存密码 - 只需发送密码重置。) @Ryan 我基本上同意你的看法,但有时你就是不能让用户接受这种风险,因为你可能有理由认为他们中的一些人并不完全理解他们所接受的内容选择简单的选项。 :) 考虑网上银行 - 很多用户会将他们的密码保存在各种地方,但这对银行或受影响的用户都不利。所以他们实施了 2FA - 问题解决了,每个人都开心。 @GaborLengyel:所以通过实施 2FA,保存的密码是可以的,这就是问题所说的。 @Ryan 不争辩,但问题询问如何正确验证用户,尽管自动填充密码。答案是使用多因素身份验证的基于风险的决定。我们在谈论我认为的同一件事。 :) @Ryan 谢谢!无论如何This is an accepted risk that the user makes
。我实际上怀疑大多数用户甚至开始普遍了解风险。只要攻击者也无法访问电子邮件地址或电话,2FA 就可以工作,因为许多人的访问方法是电话。
【参考方案1】:
我认为你有点过于复杂了。 :) 是的,自动填充密码存在安全风险。在许多情况下,这种风险是可以接受的,但在许多其他情况下,并非如此。这取决于您的风险评估/威胁模型。
如果自动填充是您决定减轻的威胁(可能是因为您认为风险高到足以证明成本合理),您可以通过适当的多因素身份验证来做到这一点。同样,你选择什么因素取决于你,但即使是用户手机上的一个简单的软件令牌也很好,除此之外的任何东西对于许多应用程序来说都是多余的,并且会显着提高成本,这意味着实施的风险需要更高进一步的控制。
所以这个问题不是基于意见的。它应该基于风险。
编辑:另外,我不确定您所说的“任何需要密码的脚本初学者都可以使用密码”是什么意思。这根本不是真的,他们需要访问您保存密码的计算机或设备。如果您在保存密码的地方稍微小心一点,那可一点儿也不容易。
【讨论】:
但是同一个设备经常可以访问帐户、电子邮件地址和(如果是电话),有哪些选择?这就是为什么几乎所有社交应用程序甚至都不提供保存您的密码和强制注销的原因。令人沮丧的是,我们 Web 开发人员无法保护任何东西免受浏览器坚持做的事情的影响。 // 是的,任何足够熟练的“黑客”都可以通过最强大的网络客户端保护(如果他们认为有必要重写 javascript),但是今天的浏览器让这项工作变得非常容易。 也@我的"the password is available to any scripting beginner that wants it"
。如果您在正确的环境(包括任何桌面环境)中,javascript 可以告诉您框中的密码是什么。由于许多用户使用相同的反对建议,这是一个问题。
也许只是我,但我没有关注你,对不起。如果您将手机解锁以供他人访问,任何 IT 措施应如何保护您?坦率地说,这是不可能的。 (顺便说一句,我使用的社交应用程序确实保存了我的凭据,尽管它是一个令牌而不是密码,但它的作用相同,而且它们从不强制注销。)桌面也是如此,在共享桌面环境中,这是一件非常基本的事情(大多数公司要求)是您注销或至少锁定屏幕。如果您允许访问您的帐户,则表示您允许访问与该帐户关联的任何数据,包括密码。
我很抱歉,意思是说金融应用程序。啊。我在想“除了社交”,然后输入了社交 对不起!。无论如何,在自动填充出现并覆盖开发人员偏好之前,您的密码是您唯一最可靠的防御......以上是关于借助 Chrome 和其他人的自动填充功能,我们如何验证用户是用户?的主要内容,如果未能解决你的问题,请参考以下文章
意外的 Chrome 自动填充行为 [禁用 chrome 自动填充]