如何禁用Web表单字段/输入标签上的浏览器自动完成功能?

时间:2020-03-05 18:37:47  来源:igfitidea点击:

如何在主要浏览器中为特定的"输入"(或者"表单字段")禁用"自动完成"?

解决方案

回答

Firefox 30会忽略密码的" autocomplete =" off"`,而是选择提示用户是否应将密码存储在客户端上。请注意以下2014年5月5日的评论:

The password manager always prompts if it wants to save a password. Passwords are not saved without permission from the user.
  We are the third browser to implement this change, after IE and Chrome.

根据Mozilla开发人员文档,表单元素属性"自动完成"可防止将表单数据缓存在较旧的浏览器中。

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

回答

如果用户以表格形式输入他们的信用卡详细信息,然后让其他人使用该浏览器,则不必担心。 :)

回答

在字段中使用非标准名称和ID,因此" name_"而不是" name"。这样浏览器就不会将其视为"名称"字段。最好的部分是我们可以对部分但不是全部字段执行此操作,它将自动完成部分但不是全部字段。

回答

<form name="form1" id="form1" method="post" 
      autocomplete="off" action="http://www.example.com/form.cgi">

这将在Internet Explorer和Mozilla FireFox中运行,缺点是它不是XHTML标准。

回答

只需设置" autocomplete =" off"`即可。这样做有一个很好的理由:我们想提供自己的自动完成功能!

回答

在相关或者实际上完全相反的音符上-

"If you're the user of the aforementioned form and want to re-enable
  the autocomplete functionality, use the 'remember password'
  bookmarklet from this bookmarklets
  page. It removes
  all autocomplete="off" attributes from all forms on the page. Keep
  fighting the good fight!"

回答

为什么要让用户的生活变得不那么方便?

"密码/信用卡数据/等不应该保存"是一个不好的说法:启用自动完成功能后,Mac OS X中的浏览器将这些值存储在具有每个应用程序权限的加密数据库中。相反," autocomplete = off"的实际效果是什么?用户将以未加密的文本文件或者更好的方式将其写在屏幕上的便利贴上。

好东西有提到的一个Antti小书签,以及使引擎完全忽略该属性的补丁。

认真地说,我敦促我们重新考虑使用此属性。它不会使任何人受益。

回答

实际上,我们确实在一个站点上使用了sasb的想法。这是一个运行医生办公室的医疗软件网络应用程序。但是,我们的许多客户都是外科医生,他们使用许多不同的工作站,包括半公共终端。因此,他们希望确保不了解自动保存的密码含义或者不注意的医生不会意外地使他们的登录信息易于访问。当然,这是在IE8,FF3.1等中开始采用私有浏览的想法之前。即使如此,许多医生还是被迫在医院使用老式IT不变的旧浏览器。

因此,我们让登录页面生成了仅适用于该帖子的随机字段名称。是的,它不太方便,但是只是在不将登录信息存储在公共终端上的情况下让用户大吃一惊。

回答

除了" autocomplete = off"之外,我们还可以通过生成页面的代码来使表单字段名称随机化,也许可以通过在名称末尾添加一些特定于会话的字符串来实现。

提交表单后,我们可以先剥离该部分,然后再在服务器端对其进行处理。这将阻止Web浏览器为字段查找上下文,也可能有助于防止XSRF攻击,因为攻击者将无法猜测表单提交的字段名称。

回答

正如其他人所说,答案是" autocomplete =" off"`

但是,我认为有必要说明为什么在某些情况下使用此方法是一个好主意,因为对此的一些答案和重复的问题表明最好不要将其关闭。

停止将存储信用卡号的浏览器留给用户。太多的用户甚至没有意识到这是一个问题。

禁用信用卡安全代码字段中的这一点尤其重要。如该页面所述:

"Never store the security code ... its value depends on the presumption that the only way to supply it is to read it from the physical credit card, proving that the person supplying it actually holds the card."

问题是,如果这是一台公用计算机(网络咖啡馆,图书馆等),那么其他用户很容易窃取卡详细信息,即使是在我们自己的计算机上,恶意网站也可能窃取了自动填充数据。

回答

为了避免无效的XHTML,我们可以使用javascript设置此属性。使用jQuery的示例:

<input type="text" class="noAutoComplete" ... />

$(function() {
    $('.noAutoComplete').attr('autocomplete', 'off');
});

问题是没有javascript的用户将获得自动完成功能。