Stoppen Sie das Ausfüllen eines Formulars durch LastPass

130

Gibt es eine Möglichkeit, zu verhindern, dass die LastPass-Browsererweiterung ein HTML-basiertes Formular mit einem Eingabefeld mit dem Namen "Benutzername" ausfüllt?

Dies ist ein verstecktes Feld, daher möchte ich nicht, dass Software dieses Feld für ihre Zwecke verwendet:

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

Die Lösung sollte nicht wie "Eingabefeld umbenennen" lauten.

Marco
quelle
12
Wenn das Feld ausgeblendet ist, ist es besser, type="hidden"es
festzulegen
2
Es scheint, als hätten Sie die falsche Antwort akzeptiert, da sie nicht funktioniert ... was Alexander vorgeschlagen hat, funktioniert, also möchten Sie vielleicht Ihre Auswahl ändern;)
Dominique
2
super einfach das ist $(':input').attr('data-lpignore', true);alles. Dadurch wird das Ausfüllen des Lastpass-Formulars für alle Formulare deaktiviert.
Adarsh Madrecha

Antworten:

170

Hinzufügen

data-lpignore="true"

In einem Eingabefeld wurde das graue [...] LastPass-Feld für mich deaktiviert.

Von LastPass.com bezogen

whatismybrowser.com
quelle
5
Dies sollte die gültige Antwort sein. LP scheint dieses Attribut zu respektieren und erfordert keine verrückten "Such" -Namen, IDs oder Rollen.
Corneliu
28
Dadurch wird nur das graue Symbol entfernt, LastPass wird jedoch nicht gestoppt, um die automatische Eingabe der Eingabe zu ignorieren
Arnis Juraga,
26
Dies sollte NICHT die akzeptierte Antwort sein, da dies NICHT "Stop LastPass das Ausfüllen eines Formulars stoppen"
Conrad Warhol
3
Gemäß dem in der Antwort angegebenen Link ( lastpass.com/support.php?cmd=showfaq&id=10512 ) verhindert LP nur, dass das Symbol auf diesem Feld angezeigt wird
Kunal
47

Zwei Bedingungen müssen erfüllt sein:

  1. Das Formular (nicht das Element) muss habenautocomplete="off" Attribut haben
  2. Der Lastpass-Benutzer muss diese Option aktiviert haben: Settings > Advanced > Allow pages to disable autofill

Dies hängt also sowohl vom Benutzer als auch vom Entwickler ab.

Takeshin
quelle
39

Was für mich funktioniert hat, ist das Wort "-search-" in der ID des Formulars, so etwas wie <form id="affiliate-search-form">- und lastpass fügt seine Elemente nicht zu den Formulareingaben hinzu. Es funktioniert mit etwas Einfacherem wie <form id="search">, funktioniert aber nicht mit<form id="se1rch">

Alexander Gorbatenko
quelle
8
Auch wird es unterdrückt , wenn - wenn Feldname oder Klasse Attribut enthält Worte „Suche“ oder „srch“ - wenn Formular - ID oder Namen atttribute enthält „Suche“ - Form Rolle Attribut „Suche“
e1v
1
Leider funktioniert dies nicht für Passwortfelder. Tatsächlich wird das Formular immer noch automatisch ausgefüllt. In meinem Fall wurde durch Hinzufügen searchvon Klassen zu Benutzername und Kennwort die Sternschaltfläche im Feld Benutzername deaktiviert, das Kennwortfeld bleibt jedoch unverändert.
Mike Rockétt
2
Ja, ich kann bestätigen, dass die Kennwortfelder bei diesem Ansatz noch ausgefüllt sind. :-(
Simon East
7
Dies gilt nicht mehr für aktuelle Lastpass-Versionen. Diese Antwort sollte also entfernt werden.
Heroselohim
4
Das Hinzufügen von -search- zur ID eines einzelnen Eingabefelds funktioniert für mich unter Chrome 51, LastPass 4.1.17. Das Hinzufügen zum Formular hilft nicht.
Alex2php
18

Ich weiß, dass ich zu spät zur Party hier bin, aber ich habe das gefunden, als ich versucht habe, den letzten Pass daran zu hindern, meine Formen zu ruinieren. @takeshin ist insofern korrekt, als die automatische Vervollständigung nicht ausreicht. Am Ende habe ich den Hack unten gemacht, nur um das Symbol zu verbergen. Nicht schön, aber ich habe das Symbol losgeworden.

Wenn Lastpass-Entwickler dies lesen, geben Sie uns bitte ein zu verwendendes Attribut, damit wir nicht auf solche Dinge zurückgreifen müssen.

form[autocomplete="off"] input[type="text"] {
    background-position: 150% 50% !important;
}
jan
quelle
2
Dies ist die einzige Lösung, die für mich funktioniert hat (selbst beim Spielen mit Lastpass-Einstellungen, die ich von meinem Benutzer ohnehin nicht erwarte), obwohl es mir widerspricht, meine eigenen background-imageEingabefelder festzulegen (ich möchte "klar" setzen Tasten“auf Eingabefelder) - in diesem Fall , was auch für mich gearbeitet wurden gerade Einstellung background-imageund background-positionmit !importantdem Lastpass builtin Stil außer Kraft zu setzen.
Guss
Sehr kreatives Denken! Danke dafür!
Howard
18

Ich denke, lastpass berücksichtigt das autocomplete="off"Attribut für Eingaben, bin mir aber nicht 100% sicher.

EDIT Wie andere darauf hingewiesen haben. Dies funktioniert nur, wenn der Benutzer den letzten Durchgang konfiguriert hat, um dies zu berücksichtigen.

mituw16
quelle
20
Ja, aber nicht standardmäßig: helpdesk.lastpass.com/extension-preferences/advanced
Marco
12
Ich kann bestätigen, dass der letzte Pass autocomplete="off"auf Formularebene nicht berücksichtigt wird . Das hat mich nur eine Stunde Entwicklungszeit für ein "Benutzer bearbeiten" -Formular verschwendet, in dem anscheinend die falsche E-Mail-Adresse angezeigt wurde. Die Lastpass-Einstellungen haben die Option "Nicht ausgefüllte Felder nicht überschreiben", was sehr hilfreich ist.
Jason
7
Wie Marco sagte, müssen Sie dieses Verhalten aktivieren. Einstellungen-> Erweitert-> Respekt AutoComplete = aus: Ermöglichen Sie Websites, AutoFill zu deaktivieren
Dan
Wie umgeht man das im letzten Pass?
Crash893
14

Für mich hat entweder gearbeitet, type=searchwas irgendwie gleich ist textoder verwendetrole=note .

Sie können das LastPass-JavaScript überprüfen, aber es ist riesig. Vielleicht finden Sie dort eine Problemumgehung. Soweit ich gesehen habe, werden nur 4 Eingabetypen überprüft. Dies input type=searchwäre also eine Problemumgehung:

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

Auch das sind die roleSchlüsselwörter, die sie zu ignorieren scheinen:

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":`

Ich habe LastPass 'überprüft und mich auf onloadwff.js26.960 Codezeilen vorbereitet :)

Erbsenpüree
quelle
5
Ich habe alle oben genannten Antworten ausprobiert und type=searchist das einzige, was für mich funktioniert.
Ryan King
1
+1 scheint type=searchdie einzige Möglichkeit zu sein, das automatische Ausfüllen zu verhindern, unabhängig vom Status der LastPass-Einstellung "Autocomplete respektieren = aus".
Johnny Rose
Versucht hinzuzufügen role="note"oder type="search". Keiner hat mit dem neuesten Chrome und dem neuesten Lastpass funktioniert.
Nikita 19
es scheint, dass das lpignorewieder funktioniert, https://jsfiddle.net/78z0L1sa/3/
fummeln Sie
Oh mein Gott, das ist ärgerlich. LastPass hat mein Feld Typ = Textkennwort in Typ = Kennwort konvertiert und auf diesem Bildschirm musste ein Kennwort angezeigt werden. Dann fügte LastPass das Site-Kennwort und nicht das richtige Kennwort hinzu, ohne dass der Benutzer wusste, wann er es gespeichert hatte änderte die Anmeldeinformationen und unterbrach ihre Verbindungen zu anderen Systemen. Der lpignore entfernte nur das Symbol, die anderen Lösungen erforderten Benutzerinteraktion, was nicht ideal ist. Schließlich funktionierte das Ändern des Typs zur Suche; obwohl ich es hasse, dies wegen der Software eines anderen tun zu müssen. Wie auch immer, stimmen Sie darüber ab.
Jason Martin
10

Fügen Sie der Eingabe-ID "Suche" hinzu

<input type="text" name="user" id="user-search"/>
Alex
quelle
1
Funktioniert gut für mich. Getestet auf dem neuesten Chrome. Es ist ein bisschen hacken, aber nicht so potentiell kaputt wie die anderen, also werde ich es versuchen.
Tedd Hansen
6

Etwas spät zur Party, aber ich habe dies gerade erreicht, indem ich das Formular geändert habe mit:

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

Ich denke, diese Dummköpfe denken zuletzt, dass es sich um ein Suchformular handelt. Dies funktioniert jedoch nicht für Passwortfelder! Lastpass ignoriert in diesem Fall das Namensfeld.

Die einzige Möglichkeit, dies zu tun, besteht darin, Folgendes direkt oben im Formular hinzuzufügen:

<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>

Es verursacht ein unangenehmes Flimmern, entfernt jedoch den Unsinn beim automatischen Ausfüllen - obwohl immer noch das Widget "Passwort generieren" angezeigt wird. LastPass wartet bis zum Domready und prüft dann, ob sichtbare Kennwortfelder vorhanden sind. Daher ist es nicht möglich, die obigen Scheinfelder auszublenden oder zu verkleinern.

PeteAUK
quelle
5

Für diese letzte fehlerhafte Version von Lastpass im Oktober 2019 scheint diese einfache Lösung die beste zu sein.

Hinzufügen

type="search"

zu Ihrer Eingabe.

Die Lastpass-Routine überprüft das typeAttribut, um festzustellen, was mit dem automatischen Ausfüllen zu tun ist, und unternimmt nichts mit diesem HTML5type von "Suche" aus. Sicher, das ist ein bisschen hackig, aber es ist eine einzeilige Änderung, die leicht entfernt werden kann, wenn sie ihr fehlerhaftes Skript reparieren.

Hinweis: Danach wird Ihre Eingabe möglicherweise von einigen Browsern anders gestaltet, wenn sie das typeAttribut aufgreifen. Wenn Sie dies beachten, können Sie es nicht passiert verhindern , indem die browserspezifischen CSS - Eigenschaften einstellen -webkit-appearanceund -moz-appearancezu 'none'auf Ihre Eingabe.

Tony Brasunas
quelle
4

Dieser ES6-Code war hilfreich für mich, da er allen meinen Eingabesteuerelementen den Daten-lpignore hinzufügte :

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

Um auf ein bestimmtes INPUT-Steuerelement zuzugreifen, könnte man Folgendes schreiben:

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

Oder Sie können dies anhand des Klassennamens tun:

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

Keine der Optionen hier (Autocomplete, Data-Lpignore usw.) hat LastPass leider daran gehindert, meine Formularfelder automatisch auszufüllen. Ich habe das Problem mit einem Vorschlaghammer angegangen und die Eingabeattribute namestattdessen asynchron über JavaScript festgelegt. Die folgende jQuery-abhängige Funktion (die vom onsubmit-Ereignishandler des Formulars aufgerufen wird) hat den Trick ausgeführt:

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);

In dem Formular habe ich einfach tmp-nameAttribute anstelle der entsprechenden nameAttribute verwendet. Beispiel:

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

Update 2019-03-20

Ich hatte immer noch Schwierigkeiten mit dem oben genannten wegen AngularJS, abhängig von den Formularfeldern mit name Gesagten, Attributen, damit ngMessages Fehlermeldungen zur Feldvalidierung korrekt anzeigt.

Die einzige Lösung, die ich finden konnte, um zu verhindern, dass LastPass Kennwortfelder in meinem Kennwortänderungsformular ausfüllt, war:

  1. Vermeiden Sie die input[type=password]vollständige Verwendung von AND
  2. kein 'Passwort' im Feldnamen zu haben

Da ich das Formular in meinem Fall normalerweise einreichen muss, habe ich meine ursprüngliche Lösung verwendet, um die Feldnamen "just in time" zu aktualisieren. Um die Verwendung von Passworteingabefeldern zu vermeiden, fand ich, dass diese Lösung sehr gut funktioniert.

John Rix
quelle
0

Versuchte die Umbenennung von -search, aber aus irgendeinem Grund funktionierte das nicht. Was für mich funktioniert hat, ist Folgendes:

  1. Formular für Autocomplete markieren - Autocomplete = "off"
  2. Ändern Sie den Eingabetyp für das Formularfeld in Text
  3. Fügen Sie Ihrem CSS eine neue Klasse hinzu, um die Eingabe zu maskieren, und simulieren Sie ein Kennwortfeld
  4. CSS-Bit: input.masker {-webkit-text-security: disc; }}

Bewährt in den neuesten Versionen von FF und Chrome.

Louis Ferreira
quelle
0

Folgendes hat bei mir funktioniert, um zu verhindern, dass der letzte Durchgang ein Rasiermesser @ Html.EditorFor-Feld in Chrome füllt:

Klicken Sie in Ihrer Symbolleiste auf das aktive LastPass-Symbol und gehen Sie dann zu Kontooptionen> Erweiterungseinstellungen.

Aktivieren Sie auf diesem Bildschirm die Option "Nicht ausgefüllte Felder nicht überschreiben" (unten).

Klicken Sie anschließend links auf "Erweitert".

Aktivieren Sie auf diesem Bildschirm "AutoComplete respektieren = aus: Websites das automatische Ausfüllen deaktivieren".

Ich musste in meinem ASP-cshtml-Formular nichts Besonderes tun, aber ich hatte einen Standardwert im Formular für das Feld @ Html.EditorFor.

Ich hoffe das hilft und funktioniert für jemanden. Ich konnte im Web keine Razor-spezifische Hilfe zu diesem Problem finden, daher dachte ich, ich würde dies hinzufügen, da ich es mithilfe des obigen Links und der Beiträge herausgefunden habe.

Doug
quelle