当我关闭自动完成功能时,如果保存在浏览器中,为什么它仍然填充 HTML 个输入?
When I have autocomplete off, why does it still fill HTML inputs if saved in browser?
是否可以防止自动填充,即使信用存储在浏览器的登录名和密码中?
或者有什么方法可以防止信誉被保存到浏览器?
还是允许这两种浏览器功能更好?如果人们共享机器,我只是考虑安全问题。
我已尝试 autocomplete="off"
输入和表单,但如果浏览器中已存储信用,它仍会自动填充字段,如果没有,则提示保存它们。
<form autocomplete="off">
<h1>Login</h1>
<input type="text" autocomplete="off" placeholder="username" />
<input type="password" autocomplete="off" placeholder="password" />
</form>
如有任何帮助,我们将不胜感激!
这是来自MDN:
If a browser keeps on making suggestions even after setting autocomplete to off, then you have to change the name attribute of the input element.
我看到你没有使用名称属性,所以请试试看。
如果您输入的实际上是用户名和密码,我不会阻止浏览器识别它们。
计算机共享的安全问题是有道理的,但我个人认为这主要取决于用户。例如,大多数计算机都有可选设置,每次在浏览器中使用自动填充时都需要输入计算机密码。如果我知道我的计算机和帐户被共享,我一定会打开此设置。
此外,要求您保存密码的弹出窗口 window 应该有选项 Never for this website
(至少在 safari 中是这样写的,我假设所有浏览器都提供类似的东西).如果用户知道密码会打开非常敏感的信息,他们应该始终选择此选项。未经用户许可,浏览器绝不会保存密码。
至于为什么您的代码不起作用 – 据我所知,您正确使用了 autocomplete="off"
属性,它应该可以正常工作。我认为原因一定是您的浏览器忽略了密码输入的这个属性。可能值得检查其他浏览器是否发生同样的事情?
过去似乎有很多Chrome忽略这个属性的例子,有各种或多或少混乱的解决方案。这些问题,例如:
- Chrome ignores autocomplete="off"
- Chrome Officially Ignores Autocomplete Attribute (Reddit)
这是因为密码自动完成不是常见的自动完成,大多数现代浏览器都使用一些不同的机制来填充这些字段。 MDN 表示可以通过在字段中添加 autocomplete="new-password"
来禁用它,尽管这是新功能并且在某些浏览器中可能无法使用。它肯定适用于 Opera 68。
所以你的代码应该是这样的:
<form autocomplete="off">
<h1>Login</h1>
<input type="text" autocomplete="new-password" placeholder="username" />
<input type="password" autocomplete="new-password" placeholder="password" />
</form>
这个问题实际上在这里得到了回答:
Disabling Chrome Autofill
是否可以防止自动填充,即使信用存储在浏览器的登录名和密码中?
或者有什么方法可以防止信誉被保存到浏览器?
还是允许这两种浏览器功能更好?如果人们共享机器,我只是考虑安全问题。
我已尝试 autocomplete="off"
输入和表单,但如果浏览器中已存储信用,它仍会自动填充字段,如果没有,则提示保存它们。
<form autocomplete="off">
<h1>Login</h1>
<input type="text" autocomplete="off" placeholder="username" />
<input type="password" autocomplete="off" placeholder="password" />
</form>
如有任何帮助,我们将不胜感激!
这是来自MDN:
If a browser keeps on making suggestions even after setting autocomplete to off, then you have to change the name attribute of the input element.
我看到你没有使用名称属性,所以请试试看。
如果您输入的实际上是用户名和密码,我不会阻止浏览器识别它们。
计算机共享的安全问题是有道理的,但我个人认为这主要取决于用户。例如,大多数计算机都有可选设置,每次在浏览器中使用自动填充时都需要输入计算机密码。如果我知道我的计算机和帐户被共享,我一定会打开此设置。
此外,要求您保存密码的弹出窗口 window 应该有选项 Never for this website
(至少在 safari 中是这样写的,我假设所有浏览器都提供类似的东西).如果用户知道密码会打开非常敏感的信息,他们应该始终选择此选项。未经用户许可,浏览器绝不会保存密码。
至于为什么您的代码不起作用 – 据我所知,您正确使用了 autocomplete="off"
属性,它应该可以正常工作。我认为原因一定是您的浏览器忽略了密码输入的这个属性。可能值得检查其他浏览器是否发生同样的事情?
过去似乎有很多Chrome忽略这个属性的例子,有各种或多或少混乱的解决方案。这些问题,例如:
- Chrome ignores autocomplete="off"
- Chrome Officially Ignores Autocomplete Attribute (Reddit)
这是因为密码自动完成不是常见的自动完成,大多数现代浏览器都使用一些不同的机制来填充这些字段。 MDN 表示可以通过在字段中添加 autocomplete="new-password"
来禁用它,尽管这是新功能并且在某些浏览器中可能无法使用。它肯定适用于 Opera 68。
所以你的代码应该是这样的:
<form autocomplete="off">
<h1>Login</h1>
<input type="text" autocomplete="new-password" placeholder="username" />
<input type="password" autocomplete="new-password" placeholder="password" />
</form>
这个问题实际上在这里得到了回答: Disabling Chrome Autofill