Question Comment désactiver la saisie semi-automatique du navigateur sur le champ / la balise d'entrée du formulaire Web?


Comment désactivez-vous autocomplete dans les principaux navigateurs pour un spécifique input (ou form field)?


2253
2017-08-05 16:22


origine


Réponses:


Firefox 30 ignore autocomplete="off" pour les mots de passe, opter pour inviter l'utilisateur à la place si le mot de passe doit être stocké sur le client. Notez ce qui suit commentaire du 5 mai 2014:

  • Le gestionnaire de mot de passe toujours invite s'il veut enregistrer un mot de passe. Les mots de passe ne sont pas sauvegardés sans la permission de l'utilisateur.
  • Nous sommes le troisième navigateur à implémenter ce changement, après IE et Chrome.

Selon Documentation du développeur Mozilla l'attribut de l'élément de formulaire autocomplete empêche les données de formulaire d'être mises en cache dans les anciens navigateurs.

<input type="text" name="foo" autocomplete="off" />

2212
2017-08-05 16:24



En plus de autocomplete=off, vous pouvez également faire en sorte que vos noms de champs de formulaire soient randomisés par le code qui génère la page, peut-être en ajoutant une chaîne spécifique à la session à la fin des noms.

Lorsque le formulaire est soumis, vous pouvez supprimer cette partie avant de les traiter du côté serveur. Cela empêcherait le navigateur Web de trouver un contexte pour votre champ et pourrait également aider à prévenir les attaques XSRF car un attaquant ne serait pas en mesure de deviner les noms des champs pour une soumission de formulaire.


248
2017-10-20 13:36



La plupart des principaux navigateurs et gestionnaires de mots de passe (correctement, IMHO) ignorent maintenant autocomplete=off.

Pourquoi? De nombreuses banques et autres sites Web «haute sécurité» ont ajouté autocomplete=off à leurs pages de connexion "à des fins de sécurité" mais cela diminue la sécurité car cela amène les gens à changer les mots de passe sur ces sites de haute sécurité pour être facile à retenir (et donc craquer) puisque la saisie semi-automatique a été cassée.

Il y a longtemps, la plupart des gestionnaires de mots de passe ont commencé autocomplete=off, et maintenant les navigateurs commencent à faire la même chose pour les entrées de nom d'utilisateur / mot de passe seulement.

Malheureusement, les bogues dans les implémentations de saisie semi-automatique insèrent des informations de nom d'utilisateur et / ou de mot de passe dans des champs de formulaire inappropriés, provoquant des erreurs de validation de formulaire ou, pire encore, insérant accidentellement des noms d'utilisateur.

Qu'est-ce qu'un développeur Web doit faire?

  • Si vous pouvez conserver tous les champs de mot de passe sur une page, c'est un bon début, car il semble que la présence d'un champ de mot de passe soit le déclencheur principal de l'auto-complétion utilisateur / passe. Sinon, lisez les conseils ci-dessous.
  • Safari remarque qu'il y a 2 champs de mot de passe et désactive la saisie semi-automatique dans ce cas, en supposant que ce soit un formulaire de changement de mot de passe, pas un formulaire de connexion. Veillez donc à utiliser 2 champs de mot de passe (nouveau et confirmez le nouveau) pour tous les formulaires où vous autorisez
  • Chrome 34, malheureusement, va essayer de remplir automatiquement les champs avec user / pass chaque fois qu'il voit un champ mot de passe. C'est un bug assez mauvais qui, espérons-le, changera le comportement de Safari. Cependant, l'ajouter au début de votre formulaire semble désactiver le remplissage automatique du mot de passe:

    <input type="text" style="display:none">
    <input type="password" style="display:none">
    

Je n'ai pas encore étudié IE ou Firefox à fond, mais serai heureux de mettre à jour la réponse si d'autres ont des informations dans les commentaires.


184
2018-04-23 04:00



parfois même autocomplete = off aurait ne pas empêcher de remplir dans les informations d'identification dans les champs incorrects, mais pas dans le champ user ou nickname.

Cette solution de contournement s'ajoute au post d'apinstein sur le comportement du navigateur.

Correction du remplissage automatique du navigateur en lecture seule et définition de la mise au point en écriture (clic et tabulation)

 <input type="password" readonly  
     onfocus="this.removeAttribute('readonly');"/>

Mettre à jour: Mobile Safari place le curseur dans le champ, mais n'affiche pas le clavier virtuel. Nouveau correctif fonctionne comme avant mais gère le clavier virtuel:

<input id="email" readonly type="email" onfocus="if (this.hasAttribute('readonly')) {
    this.removeAttribute('readonly');
    // fix for mobile safari to show virtual keyboard
    this.blur();    this.focus();  }" />

Démonstration en direct https://jsfiddle.net/danielsuess/n0scguv6/

// UpdateEnd

Parce que le navigateur remplit automatiquement les informations d'identification dans un mauvais champ de texte?

Je remarque ce comportement étrange sur Chrome et Safari, quand il y a des champs de mot de passe dans la même forme. Je suppose que le navigateur cherche un champ de mot de passe pour insérer vos informations d'identification enregistrées. Puis il remplit automatiquement (en devinant simplement en raison de l'observation) le champ de saisie textlike le plus proche, qui apparaît avant le champ de mot de passe dans DOM. Comme le navigateur est la dernière instance et que vous ne pouvez pas le contrôler,

Ce readonly-fix ci-dessus a fonctionné pour moi.


120
2018-06-16 16:04



<form name="form1" id="form1" method="post" 
      autocomplete="off" action="http://www.example.com/form.cgi">

Cela fonctionnera dans Internet Explorer et Mozilla FireFox, l'inconvénient est qu'il n'est pas standard XHTML.


93
2017-08-05 16:27



La solution pour Chrome consiste à ajouter autocomplete="new-password" au mot de passe du type d'entrée.

Exemple:

<form name="myForm"" method="post">
<input name="user" type="text" />
<input name="pass" type="password" autocomplete="new-password" />
<input type="submit">
</form>

Chrome remplit toujours automatiquement les données s'il trouve une boîte de tapez votre mot de passe, juste assez pour indiquer pour cette boîte autocomplete = "new-password".

Cela fonctionne bien pour moi.

Note: assurez-vous avec F12 que vos changements prennent effet, plusieurs fois les navigateurs enregistrent la page dans le cache, cela m'a donné une mauvaise impression que cela n'a pas fonctionné, mais le navigateur n'a pas apporté les changements.


57
2017-11-24 17:07



Comme d'autres l'ont dit, la réponse est autocomplete="off"

Cependant, je pense que ça vaut le coup Pourquoi c'est une bonne idée de l'utiliser dans certains cas comme des réponses à cela et dupliquer des questions ont suggéré qu'il vaut mieux ne pas l'éteindre.

L'arrêt des navigateurs stockant des numéros de carte de crédit ne doit pas être laissé aux utilisateurs. Trop d'utilisateurs ne réalisent même pas que c'est un problème.

Il est particulièrement important de désactiver les champs pour les codes de sécurité des cartes de crédit. Comme cette page États:

"Ne jamais stocker le code de sécurité ... sa valeur dépend de la présomption que la seule façon de le fournir est de le lire à partir de la carte de crédit physique, prouvant que la personne qui le fournit détient effectivement la carte."

Le problème est que, s'il s'agit d'un ordinateur public (cybercafé, bibliothèque, etc.), il est alors facile pour les autres utilisateurs de voler les détails de votre carte, et même sur votre propre machine un site Web malveillant pourrait voler des données de saisie semi-automatique.


53
2018-01-23 21:21



Je dois prier pour différer avec ces réponses qui disent pour éviter de désactiver l'auto-complétion.

La première chose à faire est que l'auto-complétion n'étant pas explicitement désactivée sur les champs du formulaire de connexion est un échec du PCI-DSS. En outre, si la machine locale d'un utilisateur est compromise, toutes les données de saisie semi-automatique peuvent être facilement obtenues par un attaquant en raison de leur stockage en clair.

Il y a certainement un argument en faveur de l'utilisabilité, mais il y a un très bon équilibre en ce qui concerne les champs de formulaire qui devraient être désactivés automatiquement et ceux qui ne le devraient pas.


29
2017-09-17 00:33