保存的用户名/密码显示在Firefox的错误字段中

时间:2018-08-31 13:58:02

标签: html firefox

我在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的密码管理器中删除了所有数据,这与旧的存储字段名称无关。

1 个答案:

答案 0 :(得分:0)

最后,我在这里找到了有效的答案:https://stackoverflow.com/a/29852908/1459054

虽然在Firefox中搜索此“错误” ...抱歉,“功能”已存在10多年了,但我看到有关此标记为“ WONTFIX”的多个错误报告,因为这是预期的行为(“密码管理器不应t依靠字段名称”),使登录信息可以在任何适合的位置弹出,并且因为“它与许多用户无关,因此修复不重要”。