【问题标题】:Saved username/password appear in the wrong fields on Firefox保存的用户名/密码出现在 Firefox 的错误字段中
【发布时间】:2019-02-06 13:58:56
【问题描述】:

我在 Firefox 上遇到了这个奇怪的错误,而不是 Chrome(都已更新)。

在我网站的登录页面上,字段是:

<div class="input text required">
    <label for="ArchUtilisateurUsername">Identifiant :</label>
    <input name="data[ArchUtilisateur][username]" id="ArchUtilisateurUsername" type="text">
</div>
<div class="input password">
    <label for="ArchUtilisateurPassword">Mot de passe :</label>
    <input name="data[ArchUtilisateur][password]" id="ArchUtilisateurPassword" type="password">
</div>

然后在另一个页面上,我有一个创建“读者”帐户的表单,这与用户帐户不同。它使用读取的 ID 和密码作为登录信息,但在这种形式中,两者并不相邻。 所以我有这个:

<div class="group-content">
    <div id="DivFieldLecteurFormCompteActif" class="input checkbox ">
        <input name="data[LecteurForm][compte_actif]" value="" type="hidden">
        <input name="data[LecteurForm][compte_actif]" id="FieldLecteurFormCompteActif" value="1" type="checkbox">
        <label for="FieldLecteurFormCompteActif">Compte actif</label>
    </div>
    <div id="DivFieldLecteurFormPassword" class="input password ">
        <label for="FieldLecteurFormPassword">Mot de passe</label>
        <input name="data[LecteurForm][password]" id="FieldLecteurFormPassword" autocomplete="off" type="password">
    </div>
    <div id="DivFieldLecteurFormPasswordConfirm" class="input password ">
        <label for="FieldLecteurFormPasswordConfirm">Confirmation</label>
        <input name="data[LecteurForm][password_confirm]" id="FieldLecteurFormPasswordConfirm" autocomplete="off" type="password">
    </div>
</div>

奇怪的问题是,如果用户在登录网站时验证了 Firefox 的“保存我的登录数据”弹出窗口,当他打开“阅读器”表单时,

  • “密码”字段填写的是用户密码
  • 密码字段的前一个文本输入字段填充了用户的用户名

从密码字段开始:如果前一个是复选框,选择,单选,它被忽略并走得更远。如果我从源中删除带有用户名的输入字段,当我重新加载页面时,它是下一个获取用户名的前一个输入字段。

所有似乎都链接到密码字段:

  • 登录表单和阅读器表单具有不同的密码字段名称,但它仍在这样做
  • 如果我在代码中删除了这个密码字段,重新加载后“密码确认”字段会填入用户密码
  • 如果我同时删除两者,用户密码将不会出现,用户名也会出现。
  • 如果我将密码字段类型从“密码”更改为“文本”并重新加载,密码不会出现在此字段中,而是出现在“确认密码”中。如果我对两者都这样做,则不再出现(也不会出现用户名)。

最后一点似乎证实(至少在我的情况下),当 Firefox 保存了网站的用户名/密码时,它会尝试将信息填充到他找到的第一个密码类型字段,然后填充第一个上一个文本类型字段。 正如您在代码中看到的那样,即使我在字段上添加了autocomplete="off",它也会这样做。

因此 Firefox 自动填写了错误的表单,该表单甚至具有不同的字段名称(以及不同的字段 id),并保存了登录信息。它是一种已知的行为吗?有没有办法阻止它(因为自动完成似乎不起作用)?

为了防止another answer,我多次从 Firefox 的密码管理器中删除了所有数据,这与旧的存储字段名称无关。

【问题讨论】:

    标签: html firefox


    【解决方案1】:

    最后,我在这里找到了一个可行的答案:https://stackoverflow.com/a/29852908/1459054

    在搜索时,这个“错误”......抱歉,“功能”在 Firefox 中存在超过 10 年,我看到多个错误报告关于这个标记为“WONTFIX”,因为这是预期的行为(“密码管理器应该” t 依赖于字段名称”),这使得登录信息可以在任何可以容纳的地方弹出,并且因为“它不涉及很多用户,因此修复它并不重要”。

    【讨论】:

      猜你喜欢
      • 2014-04-23
      • 1970-01-01
      • 1970-01-01
      • 2015-09-28
      • 1970-01-01
      • 2019-10-12
      • 1970-01-01
      • 1970-01-01
      • 2016-06-18
      相关资源
      最近更新 更多