停止LastPass填写表格


130

有没有一种方法可以防止LastPass浏览器扩展用名称为“用户名”的输入字段填写基于HTML的表单?

这是一个隐藏的字段,因此我不希望任何软件将其用于此目的:

<input type="text" name="username" id="checkusername" maxlength="9" value="1999" class="longinput" style="display:none">

解决方案不应类似于“重命名输入字段”。


12
如果该字段是隐藏的,最好设置type="hidden"而不是使用CSS隐藏它
Reeno 2014年

2
似乎您接受了错误的答案,因为它不起作用...亚历山大的建议确实起作用了,所以您可能希望在选择范围内切换;)
Dominique

2
超级简单,仅此$(':input').attr('data-lpignore', true);而已。这将使lastpass表格无法填写所有表格。
Adarsh Madrecha,

Answers:


170

新增中

data-lpignore="true"

输入字段,对我来说禁用了灰色的LastPass [...]框。

源自LastPass.com


5
这应该是有效的答案。LP似乎尊重此属性,不需要任何疯狂的“搜索”名称,ID或角色。
Corneliu

28
这只会删除灰色图标,但不会停止LastPass忽略输入自动填充
Arnis Juraga

26
这不应该被接受,因为这不会“停止LastPass填写表格”
康拉德·沃霍尔

3
根据答案中提供的链接(lastpass.com/support.php?cmd=showfaq&id=10512),LP仅阻止图标显示在该字段上
Kunal

47

必须满足两个条件:

  1. 形式(未在元件)需要具有autocomplete="off"属性
  2. Lastpass用户需要启用此选项: Settings > Advanced > Allow pages to disable autofill

因此,这取决于用户和开发人员。


39

对我有用的是在表单ID中使用单词“ -search-”,例如<form id="affiliate-search-form">-,并且lastpass不会将其元素添加到表单输入中。它适用于更简单的东西,<form id="search">但不适用于<form id="se1rch">


8
如果出现以下情况,也会被抑制:-如果字段名称属性包含单词“ search”或“ srch”-如果表单id名称属性包含“ search”-表单角色属性为“ search”
e1v 2015年

1
不幸的是,这不适用于密码字段。实际上,该表格仍然是自动填写的。就我而言,search在用户名和密码中添加类作为禁用用户名字段上的星号按钮,但密码字段保持原样。
MikeRockétt2015年

2
是的,我可以确认使用这种方法时密码字段仍处于填充状态。:-(
Simon East

7
这不再适用于当前的Lastpass版本。因此,应删除此答案。
Heroselohim

4
在单个输入字段的ID中添加-search-对我来说适用于Chrome 51 LastPass 4.1.17。将其添加到窗体没有帮助。
Alex2php '16

18

我知道我在这里参加聚会迟到了,但是当我试图阻止lastpass破坏我的表单时我发现了这一点。@takeshin是正确的,因为自动完成是不够的。我最终做了下面的hack,只是为了隐藏符号。不漂亮,但我摆脱了图标。

如果有任何lastpass开发人员正在阅读本文,请给我们提供一个要使用的属性,因此我们不必求助于此类内容。

form[autocomplete="off"] input[type="text"] {
    background-position: 150% 50% !important;
}

2
这是唯一对我有用的解决方案(即使使用lastpass设置,我也实际上并不希望我的用户这样做),尽管它确实与我background-image在输入字段上设置自己的设置产生冲突(我喜欢说“在输入栏按钮”) -在这种情况下还什么工作,我只是设置background-imagebackground-position!important覆盖LastPass的内置样式。
古斯

很有创意的思维!谢谢你!
霍华德

18

认为 lastpass会尊重autocomplete="off"输入的属性,但我不确定100%。

编辑 正如其他人指出的那样。仅当用户已配置了最后通行证以兑现此选项时,此选项才有效。


20
是的,它确实可以,但是默认情况下不是:helpdesk.lastpass.com/extension-preferences/advanced
Marco Marco

12
我可以autocomplete="off"在表单级别确认lastpass不兑现。这只是在“编辑用户”表单上浪费了一个小时的开发时间,该表单似乎显示了错误的电子邮件地址。lastpass首选项具有“不覆盖已填充的字段”选项,这很有帮助。
杰森

7
正如Marco所说,您需要激活此行为。偏好设置->高级->禁止自动填充=关闭:允许网站禁用自动填充
丹尼尔

您如何绕过lastpass?
Crash893 '17

14

对我来说,要么type=search等于text或使用role=note

您可以检查LastPass-JavaScript,但是它很大,也许您可​​以在其中找到一些解决方法,据我所知,它们仅检查4种输入类型,因此input type=search是一种解决方法:

!c.form && ("text" == c.type || "password" == c.type || "url" == c.type || "email" == c.type) && lpIsVisible(c))

这些也是role它们似乎忽略的-keywords:

var c = b.getAttribute("role");
switch (c) {
case "navigation":
case "banner":
case "contentinfo":
case "note":
case "search":
case "seealso":
case "columnheader":
case "presentation":
case "toolbar":
case "directory":`

我检查了LastPass' onloadwff.js,准备了26.960行代码:)


5
我尝试了上面所有的答案,但type=search对我来说唯一的事情。
瑞安·金

1
+1,似乎type=search无论使用LastPass“ Respect autocomplete = off”设置的状态如何,都是防止自动填充的唯一方法。
johnnyRose

尝试添加role="note"type="search"。没有人可以在最新的Chrome浏览器和最新的lastpass上使用。
Nikita

看来还是在lpignore工作,这是我的事https://jsfiddle.net/78z0L1sa/3/
MushyPeas

天哪,这很烦人,LastPass将我的type = text密码字段转换为type = password,并且需要在此特定屏幕上看到密码,然后LastPass添加了站点密码,而不是正确的密码,而用户并不知道他们何时保存它正在更改凭据并断开它们与其他系统的连接。lpignore仅删除了图标,其他解决方案则需要用户交互,这并不理想。最后,将类型更改为搜索有效;尽管我讨厌因为别人的软件而不得不这样做。无论如何,请对此投票。
杰森·马丁

10

将“搜索”添加到输入ID

<input type="text" name="user" id="user-search"/>

1
对我来说很好。在最新的Chrome上进行了测试。这有点hack,但没有像其他破解一样潜在,因此我会继续努力。
Tedd Hansen

6

参加聚会有点晚,但是我刚刚通过修改表单来实现:

<form autocomplete="off" name="lastpass-disable-search">

我猜这是傻瓜的最后通行,认为这是一种搜索表单。但是,这不适用于密码字段!在这种情况下,Lastpass会忽略名称字段。

我设法做到这一点的唯一方法是直接在表单顶部添加以下内容:

<form autocomplete="off">
    <div id="lp" ><input type="text" /><input type="password" /></div><script type="text/javascript">setTimeout(function(){document.getElementById('lp').style.display = 'none'},75);</script>
</form>

它会引起讨厌的闪烁,但会删除自动填充废话-尽管它仍然显示“生成密码”小部件。LastPass等到domready,然后检查是否有可见的密码字段,因此无法隐藏或缩小上面的模拟字段。


5

对于Lastpass的最新的2019年10月越野车版本,此简单修复似乎是最好的。

type="search"

输入。

lastpass例程检查type属性以确定如何执行其自动填充,并且对html5 type的“搜索” 不执行任何操作。当然,这确实有点hacky,但这是一行更改,当他们修复错误的脚本时,可以很容易地将其删除。

注意:完成此操作后,如果某些浏览器选择了该type属性,则输入的样式可能会有所不同。如果您观察到这种情况,可以通过将特定于浏览器的CSS属性设置为on,-webkit-appearance并在输入上设置为来防止这种情况的发生。-moz-appearance'none'


4

这个ES6样式代码对我很有帮助,因为它为所有输入控件添加了data-lpignore

const elements = document.getElementsByTagName("INPUT");
for (let element of elements) {
    element.setAttribute("data-lpignore", "true");
}

要访问特定的INPUT控件,可以编写如下内容:

document.getElementById('userInput').setAttribute("data-lpignore", "true");

或者,您可以通过类名来实现:

const elements = document.getElementsByClassName('no-last-pass');
for (let element of elements) {
    element.setAttribute("data-lpignore", "true");
}

1

不幸的是,这里的所有选项(自动完成,数据lpignore等)都不能阻止LastPass自动填充我的表单字段。我对这个问题采取了更加大刀阔斧的方法,name而是通过JavaScript 异步设置了输入属性。下面的jQuery依赖函数(从表单的onsubmit事件处理程序调用)可以解决问题:

function setInputNames() {
    $('#myForm input').each(function(idx, el) {
        el = $(el);
        if (el.attr('tmp-name')) {
            el.attr('name', el.attr('tmp-name'));
        }
    });
}

$('#myForm').submit(setInputNames);

在表单中,我仅使用tmp-name属性代替等效name属性。例:

<form id="myForm" method="post" action="/someUrl">
    <input name="username" type="text">
    <input tmp-name="password" type="password">
</form>

更新2019-03-20

由于AngularJS依赖于具有name属性的表单字段,因此我仍然遇到上述困难,以便ngMessages正确显示字段验证错误消息。

最终,我发现无法阻止LastPass在“密码更改”表单上填写密码字段的唯一解决方案是:

  1. 避免input[type=password]完全使用AND
  2. 字段名称中没有“ password”

由于我需要能够正常提交表单,因此我仍然采用原始解决方案来“及时”更新字段名称。为了避免使用密码输入字段,我发现此解决方案非常有效。


0

尝试使用-search重命名,但由于某些原因无法正常工作。对我有用的是:

  1. 将表单标记为自动完成-autocomplete =“ off”
  2. 将表单字段输入类型更改为文本
  3. 在CSS中添加新类以屏蔽输入,模拟密码字段
  4. css位:input.masker {-webkit-text-security:光盘;}

在最新版本的FF和Chrome中进行了测试。


0

这是我为防止lastpass在Chrome中填充剃刀@ Html.EditorFor框而采取的措施:

单击工具栏中的活动LastPass图标,然后转到“帐户选项”>“扩展首选项”。

在此屏幕上,选中“不要覆盖已填充的字段”(在底部)

接下来,单击左侧的“高级”。

在此屏幕上,选中“ Respect AutoComplete = off:允许网站禁用自动填充”。

我不需要在ASP cshtml表单中执行任何特殊操作,但是@ Html.EditorFor框的表单中确实有一个默认值。

我希望这会有所帮助并为某人工作。我在网络上找不到针对该问题的任何Razor特定的帮助,因此我想添加一下,因为我是在上述链接和贡献的帮助下找到它的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.