Chrome:避免在SPA中自动完成密码



我有一个Progressive Web应用程序。第一个页面是登录页面。从那里,用户被重定向到另一个/最终页面(基于用户类型(。最后一页是单页应用程序。所以,在这个SPA中,有一些部分用户可以更改敏感数据。为了确定用户的身份,我请求密码进行确认。到目前为止还不错。

我的问题出现在Chrome上,它想自动完成用于确认用户的密码字段。我恳请Chrome远离这些领域:

<input id="pass" value="" autocomplete="off" type="password">

我尝试不使用form来阻止浏览器填充这些字段,我尝试使用<form autocomplete="off">——没有机会。更重要的是,加载SPA后,Chrome正在填充密码字段,尽管这一部分是HIDDEN!我不想创建惊人的密码表单,我不想用自动填充帮助用户更快地结账,我希望Chrome能让一些密码字段平静下来,而不会被迫在这方面做各种各样的把戏。我知道什么时候该"创建神奇的密码表单",但事实并非如此。我认为这种行为是危险的,违背了任何安全观念。

我的问题是:避免Chrome行为的最佳方法是什么?我希望autocomplete="off"选项得到尊重。CCD_ 4和CCD_。

这个问题可以很快被标记为这个或这个问题的重复,但现在是2020年,我找不到一个优雅的解决方案。我也相信Chrome不会修复这个错误(对不起,这个功能(,会把"用户体验"放在任何合理的安全措施之前。

所以,亲爱的Chrome,如何向你翻译这些小东西:

  1. 加载页面时停止填写密码字段。该字段甚至对用户不可见,甚至可能被禁用。我告诉过你我不希望你这样做。但你不在乎
  2. 当我告诉您我使用该字段来查看该用户是否是对帐户进行一些重要更改的授权用户时,请停止填写密码。那么验证用户身份有什么意义呢?让我们让任何发现我们的人登录网页,用这个帐户做他们想做的事
  3. 你看到我是个好孩子了吗?!当用户更改密码时,我允许您自动填写PASSWORD字段(用autocomplete = "new-passord"标记(。通过这种方式,您可以为选择更复杂的密码提出建议,甚至可以保存新密码(登录时可以自由完成(。但是在这个表格中,我不想填写当前的密码。清楚了吗?你从autocomplete = "off"中学不到什么
  4. 当用户单击后退按钮时,停止建议保存各种密码。通过按下后退按钮,用户放弃了他想要做的更改。他放弃了。他什么都不想存。好啊我们能相处吗

因此,某些浏览器不再支持autocomplete属性,但您可以尝试使用以下javascript清除字段(使chrome无法访问标记(:

<input id="pass" value="" autocomplete="off" type="password" onfocusout ="this.setAttribute('readonly','readonly');" onfocus ="this.removeAttribute('readonly');">

最新更新