web-dev-qa-db-fra.com

Les sites Web devraient-ils être autorisés à désactiver la saisie semi-automatique sur les formulaires ou les champs?

Actuellement, il existe un attribut HTML form/input appelé autocomplete, qui, lorsqu'il est défini sur off, désactive la saisie semi-automatique/remplissage automatique pour ce formulaire ou élément.

Certaines banques semblent l'utiliser pour empêcher les gestionnaires de mots de passe de fonctionner. De nos jours, des sites comme Yahoo Mail semblent le faire aussi car ils estiment que les gestionnaires de mots de passe ne sont pas sûrs.

Il y a quelques semaines, j'ai implémenté une fonctionnalité dans Firefox qui donne à l'utilisateur une option pour remplacer cela pour les champs de nom d'utilisateur/mot de passe uniquement (c'est-à-dire pour désactiver le gestionnaire de mots de passe). Il y a maintenant ne demande qui lui demande de remplacer autocomplete=off par défaut. Citant le problème:

Ce comportement est une concession aux sites qui pensent que les gestionnaires de mots de passe sont nuisibles et veulent donc les empêcher d'être efficaces. Dans l'ensemble, je pense que ces sites sont généralement faux et ne devraient pas avoir autant de contrôle sur notre comportement.

Cela a du sens pour moi, pour des raisons similaires à celles dans ce commentaire de BenB .

autocomplete = off a été abusé récemment. Yahoo a commencé à l'utiliser pour leur connexion (y compris le webmail et my.yahoo.com), c'est pourquoi j'ai cessé d'utiliser Yahoo. Les applications de messagerie Web - même certains grands fournisseurs - l'utilisent maintenant, ce qui n'était décidément pas le but. Les administrateurs sont très pharisaïques et insistent pour que ces informations soient conservées "pour des raisons de sécurité" car l'enregistrement des mots de passe "n'est pas sûr".

Ils se trompent, car

  • les enregistreurs de clavier existent et sont répandus, probablement plus répandus que les logiciels malveillants qui peuvent lire le magasin de mots de passe de Firefox.
  • il existe même de simples attaques du petit neveu: il suffit de regarder par-dessus l'épaule
  • peut-être le plus important, forcer les utilisateurs à ressaisir leur mot de passe à chaque fois les force pratiquement à utiliser un mot de passe simple - facile à mémoriser, facile à taper, probablement même utilisé sur plusieurs sites Web. Ceci évidemment diminue la sécurité globale de façon spectaculaire et pose ainsi un danger pour la sécurité.

Ainsi, la saisie semi-automatique = off est activement préjudiciable à la sécurité.

Et une douleur énorme pour les utilisateurs finaux, sans récession pour eux, à part rompre les relations clients entières.

De nombreuses solutions de contournement (généralement basées sur un bookmarklet) ont été publiées sur Internet. IE11 a déjà supprimé la prise en charge de autocomplete=off .

La question est double:

  • Y a-t-il une augmentation significative de la sécurité d'un site Web lorsqu'il utilise autocomplete=off sur les champs de mot de passe? Ou est-ce réellement nuisible à la sécurité selon le commentaire de BenB?
  • Les navigateurs devraient-ils autoriser cet attribut par défaut et donner autant de contrôle au site Web? (Ce bit est subjectif, n'hésitez pas à ne pas répondre)

Bien que ma situation soit spécifique à autocomplete=off pour les champs nom d'utilisateur/mot de passe (le code n'affecte que le gestionnaire de mots de passe), j'accueille volontiers les commentaires sur l'aspect plus large de la désactivation autocomplete=off

102
Manishearth

Le problème est que ce paramètre unique contrôle simultanément le comportement de deux fonctions similaires mais suffisamment dissemblables dans le navigateur de sorte qu'un résultat optimal est difficile à obtenir.

Premièrement, nous avons ce que vous pourriez appeler la saisie automatique "intelligente" ou "naïve" ou "automatique".

Il s'agit de la technologie d'auto-complétion d'origine . Lorsque vous remplissez des formulaires sur divers sites, le navigateur surveille les noms des formulaires et le contenu que vous remplissez et se souvient silencieusement des détails. Ensuite, lorsque vous visitez un autre site avec un formulaire d'aspect similaire, il remplit "utilement" les champs en utilisant les valeurs qu'il a filtrées de votre comportement précédent sur d'autres sites.

L'idée ici est de vous faire gagner du temps sans aucune configuration ni prise de décision de votre part. Remplir votre nom? Nous remplirons automatiquement le nom que vous avez utilisé la dernière fois. Remplir une carte de crédit? Nous remplirons la carte de crédit que vous avez utilisée ailleurs.

Dans son zèle pour être utile, le navigateur partage vos secrets d'un site avec tous les autres, juste au cas où c'est ce que vous vouliez. Du point de vue de la sécurité, il s'agit d'un désastre pour toutes les raisons évidentes et pour plusieurs autres non évidentes. Il doit être désactivé et n'aurait probablement jamais dû être implémenté au départ.

Deuxièmement, nous avons la saisie semi-automatique "explicite" ou "sécurisée" ou "configurée"

C'est le monde, principalement, des noms d'utilisateur et des mots de passe enregistrés. Dans cette incarnation, le navigateur enregistre vos données de formulaire uniquement avec votre accord explicite. Idéalement, il stocke ces données dans un magasin crypté et, plus important encore, les données sont fermement associées à un seul site. Ainsi, votre mot de passe Facebook reste avec Facebook et votre adresse Amazon reste avec Amazon.

Cette technique est extrêmement différente dans la mesure où le navigateur rejoue le comportement enregistré lorsque l'environnement correspondant est détecté. Par comparaison, l'autre technique consiste à anticiper automatiquement le comportement souhaité en recherchant des similitudes.

Lorsque vous visitez le site et qu'il présente un formulaire de connexion, votre navigateur devrait remplir automatiquement les données que vous aviez explicitement enregistrées à cette fin. L'interaction doit être rapide et sans réflexion pour l'utilisateur. Et, de manière critique , devrait absolument RUPTURE dans une tentative de phishing. Le navigateur doit être si complètement réticent à fournir des informations d'identification à un site de phishing que cela lui fait s'arrêter et réfléchir à pourquoi la chose ne fonctionne pas.

Cette fonctionnalité est votre principale ligne de défense contre le phishing. Cela doit fonctionner. Vous êtes inévitablement moins sûr si l'utilisateur ne peut pas dépendre de cette fonctionnalité fonctionnant de manière transparente et sans effort dans des conditions normales.

Et bien que cela soit principalement utilisé pour le stockage des informations d'identification, c'est également un endroit sécurisé pour stocker d'autres données sécurisées, telles que les cartes de paiement, l'adresse, les questions de sécurité, etc. Ces données supplémentaires ne seront probablement pas spécifiques au site, mais devraient probablement pas de remplissage automatique sans invite.

Une option pour les gouverner tous

Le problème ici est que dans de nombreuses implémentations, le autocomplete=false contrôle les options les deux comportements. À la fois celui que vous voulez garder et celui que vous voulez tuer.

Idéalement, la saisie automatique "sécurisée" ne doit jamais être désactivée. Nous comptons sur cette fonctionnalité pour ajouter de la sécurité, donc les opérateurs de site mal avisés ne devraient pas être autorisés à compromettre cela.

Et idéalement, la saisie automatique "automatique" devrait être désactivée par défaut, pour être activée uniquement pour les rares conditions (le cas échéant) où vous voulez réellement le navigateur pour réutiliser votre entrée provenant d'autres sites.

56
tylerl

Lorsque je fais des tests au stylet, je signale un problème si un champ de formulaire demande des données sensibles (par exemple, un numéro de carte de crédit), n'est PAS un champ de mot de passe et n'a PAS la saisie semi-automatique = désactivée.

Le raisonnement est que les navigateurs gèrent la saisie semi-automatique pour les mots de passe de manière très raisonnable: ils donnent à l'utilisateur la possibilité de stocker le mot de passe et (la plupart) des utilisateurs peuvent prendre une décision raisonnable.

Cependant, pour les champs sans mot de passe, le comportement de saisie semi-automatique n'est pas souhaitable. Si je laisse quelqu'un utiliser mon ordinateur, il accède à une page de paiement en ligne et voit les détails de ma carte de crédit complétés automatiquement - c'est mauvais.

42
paj28

La raison pour laquelle les navigateurs ignorent autocomplete=off est dû au fait que certains sites Web ont tenté de désactiver la saisie automatique des mots de passe.

C'est faux; et en juillet 2014, Firefox a été le dernier navigateur majeur à enfin implémenter le changement pour ignorer tout site Web qui tente de désactiver la saisie semi-automatique des mots de passe.

Toute tentative par un site Web de contourner la préférence du navigateur est erronée, c'est pourquoi les navigateurs l'ignorent. Il n'y a aucune raison connue pour laquelle un site Web devrait essayer de désactiver l'enregistrement des mots de passe.

  • Chrome l'ignore
  • Safari l'ignore
  • IE l'ignore
  • Firefox l'ignore

Et si je suis un spécial flocon de neige ?

Il y a des gens qui évoquent un bon cas d'utilisation:

J'ai un espace partagé et public de style kiosque. Nous ne voulons pas que quelqu'un enregistre (accidentellement ou intentionnellement) son mot de passe afin que le prochain utilisateur puisse l'utiliser.

Cela ne viole pas la déclaration:

Toute tentative d'un site Web de contourner la préférence du navigateur est erronée

En effet, dans le cas d'un kiosque partagé:

  • ce n'est pas le serveur web qui a la politique d'oddball
  • c'est l'agent utilisateur client

Le navigateur (l'ordinateur partagé) est celui qui exige que it n'essaye pas de sauvegarder les mots de passe. La bonne façon d'empêcher le navigateur d'enregistrer les mots de passe, est de configurer le navigateur pour ne pas enregistrer les mots de passe. Depuis que vous avez verrouillé et contrôlé cet ordinateur kiosque: vous contrôlez les paramètres. Cela inclut la possibilité d'enregistrer les mots de passe.

Dans Chrome et Internet Explorer, vous configurez ces options à l'aide des stratégies de groupe (par exemple, les clés de registre).

À partir de la Liste des règles Chrome :

AutoFillEnabled

Activer le remplissage automatique

Type de données: Booléen (REG_DWORD)

Emplacement du registre Windows: Software\Policies\Chromium\AutoFillEnabled

Description: Active la fonction de remplissage automatique de Chromium et permet aux utilisateurs de remplir automatiquement les formulaires Web en utilisant des informations précédemment stockées telles que l'adresse ou les informations de carte de crédit. Si vous désactivez ce paramètre, la saisie automatique sera inaccessible aux utilisateurs. Si vous activez ce paramètre ou ne définissez pas de valeur, le remplissage automatique restera sous le contrôle de l'utilisateur. Cela leur permettra de configurer les profils de remplissage automatique et d'activer ou de désactiver le remplissage automatique à leur propre discrétion.

Veuillez passer le mot que tenter de désactiver la saisie semi-automatique du mot de passe est erroné, les navigateurs ignorent intentionnellement quiconque essaie de le faire, et ils devraient cesser de faire la mauvaise chose. ™

Si vous voulez votre navigateur ne pas compléter automatiquement les éléments, alors vous devrait configurer votre = navigateur pour désactiver la saisie semi-automatique. Aucun site Web ne devrait imposer cette préférence aux autres utilisateurs.

8
Ian Boyd

J'ai fait plusieurs pentests pour plusieurs banques et nous vous conseillons toujours de désactiver la saisie automatique. La raison en est que la plupart des utilisateurs n'utilisent pas de gestionnaire de mots de passe et donc le mot de passe est enregistré quelque part dans votre navigateur, en texte brut (certains navigateurs cryptent en fait les mots de passe de saisie semi-automatique, mais cela n'a été fait que récemment).

Ceci est également conseillé par le guide test OWASP :

La mise en cache des champs de formulaire est présente dans la plupart des navigateurs. Pour les champs de formulaire contenant des informations sensibles - comme les numéros de carte de crédit - la saisie semi-automatique doit être désactivée à l'aide de l'attribut AUTOCOMPLETE = OFF qui peut être utilisé dans chaque balise INPUT 1 . Cette fonctionnalité échouera à la validation par rapport aux versions actuelles des spécifications HTML, mais elle est désormais prise en charge par la plupart des navigateurs.

Tant que les informations sensibles sont protégées, il n'y a pas de problème. Le plus gros problème avec ce paramètre est lors de l'utilisation d'un ordinateur partagé. Le risque de voir vos informations mises en cache est assez important et un contourneur moins innocent pourrait simplement voler vos informations. N'oubliez pas que la plupart des utilisateurs ne sont pas aussi bien éduqués que la plupart des gens ici.

Maintenant, la banque ne peut pas réellement vérifier si vous utilisez votre ordinateur personnel ou un ordinateur partagé, donc l'évaluation des risques à ce sujet a jugé préférable de désactiver la fonctionnalité de saisie semi-automatique.

7
Lucas Kauffman

Tout le monde semble oublier que les ordinateurs sont volés quotidiennement, la plupart des ordinateurs exécutent des fenêtres. Vous pouvez modifier le mot de passe d'un utilisateur sans jamais vous connecter sur un ordinateur Windows.

Combien de dommages pensez-vous pouvoir être causés par un ordinateur volé avec toutes les informations de saisie semi-automatique enregistrées dans le navigateur? Et la plupart n'ont même pas de protection par mot de passe pour la saisie semi-automatique du navigateur, donc cela ne fait aucune différence si les données sont cryptées ou non lorsque le navigateur remplit les données pour tous les sites.

Déjà aujourd'hui, les fraudes sur Facebook et Twitter sont courantes. Les mots de passe enregistrés en sont une des raisons.

Et que se passe-t-il si un PDG enregistre ses mots de passe et que quelqu'un vole son ordinateur? Cette fonctionnalité vise à protéger tout le monde contre le piratage de leurs comptes.

0
Nisse