这很奇怪:如果我登录我的应用程序,请让firefox保存用户名/密码。然后注销并返回登录界面,firefox填写用户名输入字段内的密码,从而使其可见!
知道什么可能导致问题吗?这是我的表格的html,虽然我已经检查了10亿次。
<form action="<?php echo WWWROOT ?>login/" autocomplete="on" method="post" name="extranetLoginForm" id="extranetLoginForm" >
<ul id="formlog">
<li id="liloginfield">
<label for="loginfield" id="loginfieldlab"><span class="required">
<img alt="user-icon" src="<?php echo WWWROOT ?>_img/icons/user.png" />
Mon nom d'utilisateur : <small style="color:#AAA">(prenom.nom)</small></span>
</label>
<input id="loginfield" name="loginfield" class="text required ui-corner-all" type="text" tabindex="1" accesskey="l" />
<label for="loginfield" class="error" id="error1">
<img alt="erreur-login" src="<?php echo WWWROOT ?>_img/icons/exclamation.png" />Ce champ est obligatoire, rédigez comme ceci: prenom.nom</label>
</li>
<li id="lipass">
<label for="password">
<span class="required"><img alt="lost-pass" src="<?php echo WWWROOT ?>_img/icons/key.png" />mot de passe
<small class="help_form">(<a id="forgotPasswordLink" href="#">oublié</a> ?)</small></span>
</label>
<input name="password" type="password" class="text required ui-corner-all" id="password" minlength="4" maxlength="20" tabindex="2" accesskey="p" />
<small class="checker" ></small>
<input type="hidden" name="errorpass" id="errorpass" value="0"/>
<label for="password" class="error" id="error2"><img alt="exclamation" src="<?php echo WWWROOT ?>_img/icons/exclamation.png" />Ce champ est obligatoire.</label>
</li>
<li>
<input name="rememberme" type="checkbox" id="rememberme" value="forever" tabindex="90" /><label for="rememberme"> Se souvenir de moi</label></p>
</li>
<li class="centeredtext">
<input type="hidden" name="goto" id="goto" value="<?php echo WWWROOT.$_SESSION['AFTER_LOGIN_GOTO'] ?>"/>
<input type="hidden" name="login_type" id="loginTypeNormal" value="normal"/>
<input type="submit" class="ui-state-default button ui-corner-all short_input" value="GO!" id="submitlogin" tabindex="1" accesskey="L" />
</li>
<li id="lipassforget">
<label class="centered info"><a class="dark_link openidLink" href="#" id="openidLink">avec OpenID</a></label>
</li>
</ul>
</form>
答案 0 :(得分:2)
您是否有机会更改字段名称,即在Firefox保存用户名/密码的某个时刻,密码字段是“loginfield”?根据Mozilla的wiki,密码管理器将字段名称与已保存的登录详细信息一起存储,因此它可能与此相关。
您是否尝试从Firefox的密码管理器中删除用户名/密码,并在尝试再次保存登录详细信息时查看是否再次发生?
答案 1 :(得分:0)
Mozilla Firefox密码管理器很奇怪。它有自己的想法。
https://wiki.mozilla.org/Firefox%3aPassword_Manager
如果您使用Mozilla登录您的应用程序,并且您的登录字段的ID为“L”且密码字段的ID为“P”,则会记住这些ID,以便它可以为您输入值。只有选中此选项才会出现这种情况:选项&gt;安全&gt;记住密码复选框。
现在,如果你有一个页面(或表格......不是很确定),至少有一个输入字段的id与“L”或“P”匹配,那么Mozilla密码管理器(内置于浏览器中)将尝试使用其智能为您填写值,即使两个字段都不存在。请参阅下面的示例以获得更好的图片这可能有助于您解决问题。
让我解释一下......
我在法医软件上工作,用户必须审核他们在每个工作流程中所做的一切,因此需要密码,因此如果我们的客户经过FDA审核,我们会记录工作流程。因此,我们的应用程序中的每个按钮都有一个密码字段,但由于用户已经登录,我们不希望他们也输入他们的登录名,因此该字段被禁止。这是我必须要做的,使该方法工作(对于Mozilla)。我不得不添加隐藏(显示:无)输入字段。
<input runat="server" type="text" style="display:none;">
<asp:TextBox id="TxtPassword" Runat="server" Width="80" EnableViewState="False" TextMode="Password"></asp:TextBox>
TextBox控件实际呈现为HTML中的输入字段。在我修复此问题之前,我在密码字段前面有一个页面的搜索字段,并将用户名放入该字段。如果我在id为“P”的输入字段之前没有隐藏的输入字段(或者在这种情况下为“TxtPassword”),它仍然会将登录信息放入我的搜索字段,因为它在输入字段之前的id为“TxtPassword” ”。隐藏字段(隐藏)是在Mozilla中解决此问题。用户名进入该输入框,并注意它甚至没有id,但Mozilla将登录放入该字段,因为上面的对话框图像中显示了Mozilla设置。