解决谷歌浏览器自动填充账号密码的问题(autocomplete)
文章目录
- 场景
- 分析
- 参考文档
- 解决
场景
- 网站有个重置密码的功能,今天测试人员突然反馈,旧密码和新密码被自动填充了
分析
- 重置密码的组件的旧密码和新密码对应数据是空字符串, 所以不是代码问题;
- 一般框架自带的填充功能是需要触发的,不是真正意义上的完全填充, 但是组件中没有相应的代码; 所以排除框架的问题
- 那么就是浏览器自动填充的了
参考文档
- MDN 如何关闭表单自动填充
解决
autocomplete=“off”
- 谷歌浏览器没有效果
autocomplete=“helloworld<?= mt_rand(1000, 10000)?>”
- OK
原文摘抄
在这里设置 autocomplete=“off” 会有两种效果:
- 它会阻止浏览器为了以后自动完成类似的表单来自动保存表单数据,但是浏览器是不一样的。
- 它会阻止浏览器历史记录缓存中的表单数据。当表单数据来自缓存的时候,当用户点击返回按钮来返回的时候,用户填写的信息是可见的。
- 在某些情况下,即使浏览器的自动填充设置为off,浏览器依然会继续提示自动完成的值。这可能会让开发者百思不得其解。强制浏览器不自动填充的方法是为autocomplete设置一个随机的字符串,例如:
autocomplete="nope"
当这个随机的值不是 可用值的时候,浏览器就会放弃自动填充。
还没有评论,来说两句吧...