【问题标题】:How to stop the browser filling inputs with data如何停止浏览器用数据填充输入
【发布时间】:2014-09-14 13:48:41
【问题描述】:

场景如下:我登录到我的网站,此时浏览器询问我是否要保存我的详细信息,我单击“是”。稍后我想更改我的密码,所以我去更改密码页面。浏览器自动假定“旧密码”输入框是登录框并输入当前密码。这意味着我只需输入两次新密码即可更改密码。

很容易看出这是一个潜在的安全风险......我尝试了几种方法来覆盖它:

  • 在 HTML 中将输入值显式设置为空白。
  • 在 HTML 中将自动完成设置为关闭。
  • 使用 Javascript 将值设置为空白(在页面加载、单击、setTimeout 时)。

到目前为止,我的任何尝试都没有奏效。所以我的问题是:是否有一个跨浏览器解决方案允许开发人员覆盖/特别声明密码应该和不应该由浏览器填写的位置?

【问题讨论】:

  • 是的,我在小牛队。
  • 如果您在谈论 Chrome,那么不是真的。有一些技巧(添加隐藏输入),但它们并不好。
  • 不幸的是,我认为可能是这种情况,谢谢。
  • 如果使用 chrome(设置->高级设置->密码和表单),您可能必须转到 chrome://settings/ 并禁用自动填充:/ Safari 中自动填充选项卡中的相同设置跨度>
  • 这是我尝试过但忘记提及的其他东西,似乎浏览器只能通过type而不是id检测。

标签: javascript html css input


【解决方案1】:

不幸的是,在我所做的研究和对我的问题的回答的支持下,答案似乎是目前没有可靠的跨浏览器解决方案来解决这个问题。

【讨论】:

    【解决方案2】:

    只需添加 autocomplete="off",这样浏览器就不会再触摸您的框了。

    <input type="text" name="xxx" autocomplete="off" />
    

    【讨论】:

    • 正如我在问题中所说,我尝试这种方法没有奏效。 (使用 Chrome 在 OS X 上测试)
    • 好吧,使用 jquery 在页面加载时重置表单怎么样? $('form').each(function() { this.reset() });
    【解决方案3】:

    示例(做什么):
    &lt;input type="text" value="" placeholder=""&gt;&lt;/input&gt;


    希望对您有所帮助

    【讨论】:

    • 不幸的是,正如我的问题所述,这种方法不起作用。 :(
    猜你喜欢
    • 2012-12-11
    • 1970-01-01
    • 2020-06-18
    • 2016-10-03
    • 2013-11-04
    • 2023-01-31
    • 2021-03-22
    • 1970-01-01
    • 2021-02-25
    相关资源
    最近更新 更多