问: 比如我在 https://klb.kltong.com/login.jsp 成功登录后浏览器问我保不保存密码, 我点了是, 然后跳转到网关付款的时候,
发现用户名和密码莫名赋值到了这里, 我看了下源码没有相同点, 应该不是 id 或者 name 重复的原因,
所以感觉很奇怪, 而且不止一个浏览器有这样的问题, 而且都是付给了金额和下面的消费密码, 所以不知道这里面浏览器是怎么解析的呢?
分析: 登陆页面和付款页面的 input 是不是 id 或者 name 属性值是相同的?
如果是 html5 可以使用 sessionStroage 来存储相关的信息是浏览器功能, 根据域名绑定账号和密码
防止浏览器记住用户名及密码的简单实用方法
如何设置能禁止浏览器自动保存表单信息, 比如用户名, 密码?
现在很多浏览器都有自动填写功能, 我在 input 上使用了 autocomplete="off", 但在有的浏览器上还是被记住了用户名跟密码, 请问有没有更有效及简便的方法来防止浏览器记住用户名及密码?
1, 针对浏览器记住密码
1). 首先大部分浏览器都是根据表单域的 type="password" 来判断密码域的, 所以针对这种情况可以采取 "动态设置密码域" 的方法:
代码如下:
<input type="text" name="password" onfocus="this.type='password'" />
解释: 当这个文档框获取焦点时才将其变成密码域, 这样浏览器就不会记住密码, 当然为了更加完善, 还可以把 autocomplete="off" 属性也加上.
2). 在 onload 事件, 把密码框的值清空, 即:
代码如下:
- <script language="javascript">
- Windows.load = function() {
- document.getElementById('密码域 ID').value = '';
- };
- </script>
3). 页面采用 https 协议, 因为 https 是不会对表单进行保存信息的.
4). 采用 flash 做登录表单, 这种情况浏览器也不会记录表单信息.
5). 再来个变态的好了, 就是可以把 type="password" 改成 type="text", 因为 type 不是 password 就不会出现记住密码功能, 然后设置一个变量如: var val="" 或者是设置一个隐藏域 < input
type="hidden" name="val">, 最后用 onpropertychange 把密码换成一行圆点, 并把值赋给 val, 提交时再把 val 的值还原回去, 由于效果和 * 号一样. 用户是看不出来的.
2, 针对有些浏览器插件的自动填表功能
这个就比较麻烦了, 我想这种情况应该是插件记住表单域 name 的值, 然后再进行填表, 这种情况, 我觉得可以在页面加载时动态更改 name 的值, 当提交表单的时候再把表单的值组合成正确的对应值再提交. 这个没有经过验证, 只是我个人的想法. 你可以试试
如果以上这些方法还满足不了你, 那我也没办法了.
建议:
试一下把对应域名下的 cookie 清掉, 浏览器应该是根据 cookie 来记住用户名密码的.
- (不是的, 有的浏览器是在你提交表单后, 根据你提交的值来记住的)
- (对的 有些浏览器不记录在 COOKIE 这个比较头疼 顺便问下 INPUT 里输入过的值如何清除? 我希望能像银行的那样 输入过的值不再出现)
浏览器记住密码的实现方式就是通过寻找 type 为 password 的 input 输入框, 然后前边一个输入框就作为用户名记住. 所以解决这个问题的办法就是在用户名 input 和密码 input 之间增加一个 type 为 text 的输入框设置 CSS 属性 display 为 none.
来源: https://www.cnblogs.com/xiaosanxian/p/10996343.html