意外的 Chrome 自动填充行为 [禁用 chrome 自动填充]
Posted
技术标签:
【中文标题】意外的 Chrome 自动填充行为 [禁用 chrome 自动填充]【英文标题】:Unexpected Chrome Autofill Behaviour [disable chrome autofill] 【发布时间】:2019-04-10 06:31:29 【问题描述】:所以和我之前的其他人一样,我正在尝试禁用 chrome 自动填充。
这向我解释了为什么自动完成off does not work:
用户代理可能允许用户覆盖元素的自动填充 字段名称,例如将其从“关闭”更改为“打开”以允许值 尽管页面作者反对,但仍被记住并预填,或 总是“关闭”,从不记住值。但是,用户代理应该 不允许用户轻易覆盖自动填充字段名称 “关”到“开”或其他值,因为有显着的安全性 如果始终记住所有值,则对用户的影响, 无论网站的偏好如何。
这应该是the solution:
在某些情况下,浏览器会不断提示自动完成值 即使自动完成属性设置为关闭。这出乎意料 行为对于开发人员来说可能非常令人费解。真正的诀窍 强制不完成是为属性分配一个随机字符串
默认行为
这是意料之中的。
自动完成关闭
这也是意料之中的。
自动完成为随机字符串
自动完成是不同的,但我仍然看到它,它来自 chrome。 (我禁用了我的扩展程序,仅在 chrome 设置中关闭自动填充功能会阻止自动完成功能出现)
谁能解释一下发生了什么,我该如何最终摆脱它? ????
编辑:
在相同形式的另一个输入中,autocomplete="off"
有效,autocomplete="radnomString!23123adf"
无效。将autocomplete
属性设置为form
元素没有帮助。 autocomplete="new-password"
也没有帮助。
【问题讨论】:
【参考方案1】:从最近的 Chrome(绝对是版本 70)开始,autocomplete="off"
现在受到尊重,只要您的输入看起来不像用户个人资料、地址或信用卡数据。
另一方面,disabled
、nope
或随机字符串等值似乎被忽略了。
Chrome 可能会忽略自动完成元素,因为您的输入名称是 individualName
。自动填充逻辑由 Google 在服务器端完成,因此涉及很多启发式方法。
【讨论】:
对不起,我有 Chrome 版本 70.0.3538.110 并且 autocomplete="off" 不起作用,而 "nope" 效果更好。奇怪的。我还使用 Chrome 69 进行了测试。 @barbara.post,确保每个输入都有唯一的“名称”属性。 另外,我需要强调的是,Chrome 实际上会调用 Google 服务器来询问它是否应该自动填充。所以逻辑可以随时改变!autocomplete=off
仅解决自动完成问题。自动填充建议仍然出现在 Chrome 71 上【参考方案2】:
为了稍微补充一下 rjh 的回答,Chrome 不只是查看您要禁用自动完成功能的字段的名称/ID。它正在查看文本框附近的文本。因此,如果您有“名称:[txtRandomStringTextBox]”,它将假定 [txtRandomStringTextBox] 实际上是一个名称,并且它将继续推荐自动填充。不确定是否可以解决此问题。
虽然他们目前在 Chrome 70 .0.3538.102 中的实现不那么烦人,但如果能完全解决这个问题就更好了。
【讨论】:
【参考方案3】:我在 Windows Chrome 上遇到了同样的问题。 Chrome 忽略了我关于自动完成的设置并做坏事。
在我使用Chrome version 70+
的计算机上使用新保存的密码可以正常工作,但在Chrome version 70
之前创建的密码的计算机上无法按预期工作。 在使用设置等创建新密码和删除密码以及其他许多内容后,我的同伴从 AppData 中清除了 Chrome 缓存。现在它可以像计算机一样正常工作了。
Chrome 70 中的新功能 respect autocomplete=off
的更改似乎不会使用旧存储密码刷新缓存。 (感谢@rjh 的信息)
解决方案是删除 Chrome 缓存
C:\Users\<yourUser>\AppData\Local\Google\Chrome
希望对你有帮助。
【讨论】:
SOLUTION IS DELETE CHROME CACHE FROM
?我认为这不适用于使用我网站的人。
@Michal 我明白了。我有网络产品,而我的客户对此很麻烦。而且我并不是说它很好,而是它的 Chrome 更新错误,这在 3 天后找到了解决方案解决了我的问题。我希望它可以帮助某人。
Version 76.0.3809.87
在这里,这个解决方案不起作用。删除我的用户数据、重新启动 Chrome 并再次保存我的凭据后,我仍然将它们预填充在随机字段中【参考方案4】:
为了防止自动填充(不是自动完成),我使用了以下技巧:
<form>
<input
name="username"
type="text"
style="opacity: 0; position: fixed; width: 0; height: 0"
/>
<input
type="password"
style="opacity: 0; position: fixed; width: 0; height: 0"
/>
<input name="username" type="text" />
<input type="password" />
</form>
【讨论】:
以上是关于意外的 Chrome 自动填充行为 [禁用 chrome 自动填充]的主要内容,如果未能解决你的问题,请参考以下文章