Html 如何在web表单字段/输入标记上禁用浏览器自动完成?

Html 如何在web表单字段/输入标记上禁用浏览器自动完成?,html,forms,browser,autocomplete,Html,Forms,Browser,Autocomplete,如何在主要浏览器中禁用特定输入(或表单字段)的自动完成功能?Firefox30忽略密码的自动完成功能,选择提示用户是否应将密码存储在客户端。2014年5月5日起,注意以下事项: 密码管理器始终提示是否要保存密码。未经用户许可,不得保存密码 我们是继IE和Chrome之后第三个实现这一改变的浏览器 根据文档,布尔表单元素属性autocomplete可以防止表单数据被缓存在旧浏览器中 <input type="text" name="foo" aut

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

Firefox30忽略密码的自动完成功能,选择提示用户是否应将密码存储在客户端。2014年5月5日起,注意以下事项:

  • 密码管理器始终提示是否要保存密码。未经用户许可,不得保存密码
  • 我们是继IE和Chrome之后第三个实现这一改变的浏览器
根据文档,布尔表单元素属性
autocomplete
可以防止表单数据被缓存在旧浏览器中

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

Firefox30忽略密码的
autocomplete=“off”
,选择提示用户是否应将密码存储在客户端。2014年5月5日起,注意以下事项:

  • 密码管理器始终提示是否要保存密码。未经用户许可,不得保存密码
  • 我们是继IE和Chrome之后第三个实现这一改变的浏览器
根据文档,布尔表单元素属性
autocomplete
可以防止表单数据被缓存在旧浏览器中

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

为字段使用非标准名称和id,因此不要使用“名称”而使用“名称”。浏览器将不会将其视为名称字段


最好的一点是,您可以对某些字段(但不是所有字段)执行此操作,它将自动完成某些字段(但不是所有字段)。

为字段使用非标准名称和id,因此,与“名称”不同的是“名称”。浏览器将不会将其视为名称字段

<form name="form1" id="form1" method="post"
      autocomplete="off" action="http://www.example.com/form.cgi">
最好的一点是,您可以对某些字段(但不是所有字段)执行此操作,它将自动完成某些字段(但不是所有字段)。


<form name="form1" id="form1" method="post"
      autocomplete="off" action="http://www.example.com/form.cgi">
这将在Internet Explorer和Mozilla Firefox中工作。缺点是它不是XHTML标准。



这将在Internet Explorer和Mozilla Firefox中工作。缺点是它不是XHTML标准。

只需设置
autocomplete=“off”
。这样做有一个很好的理由:您希望提供自己的自动完成功能

只需设置
autocomplete=“off”
。这样做有一个很好的理由:您希望提供自己的自动完成功能

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

“如果您是上述表单的用户并希望重新启用 自动完成功能,使用“记住密码” 从中删除bookmarklet。它将删除 页面上所有表单的所有
autocomplete=“off”
属性。保留 打好仗!”


在相关或事实上,在完全相反的注释上-

“如果您是上述表单的用户并希望重新启用 自动完成功能,使用“记住密码” 从中删除bookmarklet。它将删除 页面上所有表单的所有
autocomplete=“off”
属性。保留 打好仗!”

我们确实使用了sasb的一个网站的想法

这是一个运行医生办公室的医疗软件web应用程序。然而,我们的许多客户是外科医生,他们使用许多不同的工作站,包括半公共终端。因此,他们想确保一个不理解自动保存密码的含义或不注意的医生不会意外地让他们的登录信息容易访问

当然,这是在Internet Explorer 8、Firefox 3.1等中开始出现私人浏览的想法之前。尽管如此,许多医生还是被迫在医院使用老式浏览器,但这种情况不会改变

因此,我们让登录页面生成仅适用于该帖子的随机场名。是的,它不太方便,但它只是在打击用户不在公共终端上存储登录信息的想法。

我们确实在一个网站上使用了sasb的想法

这是一个运行医生办公室的医疗软件web应用程序。然而,我们的许多客户是外科医生,他们使用许多不同的工作站,包括半公共终端。因此,他们想确保一个不理解自动保存密码的含义或不注意的医生不会意外地让他们的登录信息容易访问

当然,这是在Internet Explorer 8、Firefox 3.1等中开始出现私人浏览的想法之前。尽管如此,许多医生还是被迫在医院使用老式浏览器,但这种情况不会改变


因此,我们让登录页面生成仅适用于该帖子的随机场名。是的,这不太方便,但它只是让用户对不在公共终端上存储登录信息的想法大吃一惊。

除了设置
autocomplete=off
,还可以让生成页面的代码随机化表单字段名,也许可以在名称的末尾添加一些特定于会话的字符串


提交表单时,您可以在服务器端处理之前去掉该部分。这将阻止web浏览器查找域的上下文,也可能有助于防止XSRF攻击,因为攻击者无法猜测表单提交的域名称。

除了设置
autocomplete=off
,还可以让生成页面的代码随机化表单域名称,也许可以在名称的末尾添加一些特定于会话的字符串

提交表单时,您可以在服务器端处理之前去掉该部分。这将阻止web浏览器为您的字段查找上下文,还可能有助于防止XSRF攻击,因为攻击者无法猜测
autocorrect="off" autocapitalize="off" autocomplete="off"
<input type='text' autocomplete='off' />
<form action='' autocomplete='off'>
$('input').attr('autocomplete', 'off');
<input type="text" style="display:none">
<input type="password" style="display:none">
 <input type="password" readonly
     onfocus="this.removeAttribute('readonly');"/>
<input id="email" readonly type="email" onfocus="if (this.hasAttribute('readonly')) {
    this.removeAttribute('readonly');
    // fix for mobile safari to show virtual keyboard
    this.blur();    this.focus();  }" />
<?php $r = md5(rand() . microtime(TRUE)); ?>
<form method="POST" action="./">
    <input type="text" name="<?php echo $r; ?>" />
    <input type="hidden" name="__autocomplete_fix_<?php echo $r; ?>" value="username" />
    <input type="submit" name="submit" value="submit" />
</form>
foreach ($_POST as $key => $val) {
    $newKey = preg_replace('~^__autocomplete_fix_~', '', $key, 1, $count);
    if ($count) {
        $_POST[$val] = $_POST[$newKey];
        unset($_POST[$key], $_POST[$newKey]);
    }
}
echo $_POST['username'];
<div style="display: none;">
    <input type="text" id="PreventChromeAutocomplete" name="PreventChromeAutocomplete" autocomplete="address-level4" />
</div>
autocomplete="nope"
<div style="height:0px; overflow:hidden; ">
  Username <input type="text" name="fake_safari_username" >
  Password <input type="password" name="fake_safari_password">
</div>
<form name="myForm"" method="post">
   <input name="user" type="text" />
   <input name="pass" type="password" autocomplete="new-password" />
   <input type="submit">
</form>
<input name="pass" type="password" autocomplete="new-password" />
autocomplete="off"
readonly onfocus="this.removeAttribute('readonly');"
<input type="text" name="UserName" autocomplete="off" readonly 
    onfocus="this.removeAttribute('readonly');" >

<input type="password" name="Password" autocomplete="off" readonly 
    onfocus="this.removeAttribute('readonly');" >
<input name="name" type="text" autocomplete="rutjfkde">