Arrêtez LastPass en remplissant un formulaire

Existe-t-il un moyen d’empêcher l’extension du navigateur LastPass de remplir un formulaire HTML avec un champ de saisie portant le nom “username”?

Ceci est un champ caché, donc je ne veux pas qu’un logiciel utilise ce champ à leurs fins:

 

La solution ne devrait pas être comme “renommer le champ de saisie”.

Ajouter

 data-lpignore="true" 

dans un champ de saisie, la case grise LastPass a été désactivée pour moi.

Source: LastPass.com

Ce qui a fonctionné pour moi est d’avoir le mot “-search-” dans l’ID du formulaire, quelque chose comme

– et lastpass n’ajoute pas ses éléments aux entrées du formulaire. Il fonctionne avec quelque chose de plus simple comme

mais ne fonctionne pas avec

Deux conditions doivent être remplies:

  1. Le formulaire (pas l’élément) doit avoir l’atsortingbut autocomplete="off"
  2. L’utilisateur Lastpass doit avoir cette option activée: Settings > Advanced > Allow pages to disable autofill

Cela dépend donc à la fois de l’utilisateur et du développeur.

Je sais que je suis en retard à la fête ici, mais j’ai trouvé ça quand j’essayais d’empêcher le passage de passer à côté de mes formulaires. @takeshin a raison de dire que l’autocomplétion ne suffit pas. J’ai fini par faire le hack ci-dessous juste pour cacher le symbole. Pas joli, mais je me suis débarrassé de l’icône.

Si des développeurs lastpass lisent ceci, donnez-nous un atsortingbut à utiliser, afin de ne pas avoir à recourir à des choses comme celles-ci.

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

Je pense que lastpass honore l’atsortingbut autocomplete="off" pour les entrées, mais je ne suis pas sûr à 100%.

EDIT Comme d’autres l’ont fait remarquer. Cela ne fonctionne que si l’utilisateur a configuré la dernière passe pour le respecter.

Pour moi a travaillé soit type=search qui est un peu égal au text ou using role=note .

Vous pouvez vérifier le LastPass-JavaScript mais c’est énorme, peut-être que vous pouvez trouver une solution là-bas, de ce que j’ai vu, ils ne vérifient que 4 types d’entrées, donc input type=search serait une solution de contournement:

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

Ce sont aussi les mots-clés du role qu’ils semblent ignorer:

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

J’ai vérifié sur onloadwff.js LastPass, prépare onloadwff.js lignes de code 🙂

Ajouter “search” à l’entrée id

  

Un peu tard pour la fête mais je viens d’y parvenir en modifiant la forme avec:

 

J’imagine que ces imbéciles empêchent de penser que c’est un formulaire de recherche. Cela ne fonctionne pas pour les champs de mot de passe cependant! Lastpass ignore le champ de nom dans ce cas.

Le seul moyen que j’ai réussi à faire est d’append ce qui suit directement en haut du formulaire:

 

Il provoque un scintillement désagréable mais supprime le non-sens du remplissage automatique – bien qu’il affiche toujours le widget “Générer un mot de passe”. LastPass attend que domready puis vérifie s’il existe des champs de mot de passe visibles, il n’est donc pas possible de masquer ou de réduire les champs de simulation ci-dessus.

Ce code de style ES6 m’a été utile car il a ajouté data_lpignore à tous mes contrôles d’entrée:

 const elements = document.getElementsByTagName("INPUT"); for (let element of elements) { element.setAtsortingbute("data_lpignore", "true"); } 

Pour accéder à un contrôle INPUT spécifique, on pourrait écrire quelque chose comme ceci:

 document.getElementById('userInput').setAtsortingbute("data_lpignore", "true"); 

Ou, vous pouvez le faire par nom de classe:

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

J’ai essayé de renommer la recherche, mais pour une raison qui ne fonctionnait pas. Ce qui a fonctionné pour moi est le suivant:

  1. forme de marque à autocomplete – autocomplete = “off”
  2. changer le type de saisie du champ de formulaire en texte
  3. append une nouvelle classe à votre css pour masquer l’entrée, simule un champ de mot de passe
  4. bit css: input.masker {-webkit-text-security: disque; }

Essayé et testé dans les dernières versions de FF et Chrome.

Aucune des options ici n’a empêché LastPass de remplir automatiquement mes champs de formulaire. J’ai adopté une approche plus lissée du problème et j’ai défini de manière asynchrone les atsortingbuts de name entrée via JavaScript. La fonction suivante dépendante de jQuery (invoquée à partir du gestionnaire d’événements onsubmit du formulaire) a fait l’affaire:

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

Dans le formulaire, j’ai simplement utilisé les atsortingbuts tmp-name à la place des atsortingbuts de name équivalents. Exemple: