为了账号安全,请及时绑定邮箱和手机立即绑定

浏览器如何知道何时提示用户保存密码?

浏览器如何知道何时提示用户保存密码?

慕标琳琳 2019-11-13 16:07:03
这与我在这里提出的问题有关: 如何让浏览器提示您保存密码?这是问题所在:我无法使浏览器提示我保存我正在开发的网站的密码。(我说的是,当您在Firefox上提交表单时,有时会显示的栏,上面写着“还记得yoursite.com的密码吗?是/否现在/从不”)这真令人沮丧,因为Firefox(和大多数其他现代浏览器,我希望以类似的方式工作)的这一功能似乎是个谜。这就像浏览器的魔术一样,在浏览器中查看您的代码,您提交的内容或其他内容,如果它“看上去”像是带有用户名(或电子邮件地址)字段和密码字段的登录表单,则它可以保存。除非在这种情况下,否则在我的用户使用我的登录表单后,它没有为我的用户提供该选项,这使我发疯。:-)(我检查了Firefox的设置-我没有告诉浏览器“从不”访问该站点。它应该在提示。)我的问题Firefox用来了解何时提示用户进行保存的启发式操作是什么?这应该不太难回答,因为它就在Mozilla源码中(我不知道在哪里看,否则我会尝试自己挖掘出来)。我也没有运气从Mozilla开发人员那里找到博客帖子或其他类似的开发人员说明。(我可以在Safari或IE中回答这个问题,这很好;我可以想象所有浏览器的用户使用的规则都非常相似,因此,如果我能在其中一个浏览器中使用它,那么它将在其他浏览器中使用。)(*请注意,如果您的回答与Cookie,加密或其他与我在本地数据库中存储密码的方式有关,则很可能您误解了我的问题。:-)
查看完整描述

3 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

我遇到了同样的问题,找到了解决方案:


为了使浏览器要求存储密码,用户名和密码框必须采用表格形式,并且该表格必须实际提交。提交按钮可能会从onclick处理程序返回false(因此实际上不会发生提交)。


为了使浏览器恢复先前存储的密码,输入框必须存在于主HTML表单中,并且不能通过javascript动态创建。可以使用display:none创建表单。


需要注意的是,密码是在页面加载后立即填写的,并且在整个会话期间都存在,因此可以通过注入的javascript读取:这样会使攻击更加严重。为了避免这种情况,转发到单独的页面以进行登录是合理的,它解决了您开始阅读本主题所涉及的所有问题:)。作为部分解决方案,我在提交表单时清除了这些字段-如果用户注销并想再次登录,则浏览器不会填充密码,但这对我来说是次要的。

查看完整回答
反对 回复 2019-11-13
  • 3 回答
  • 0 关注
  • 918 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信