85 votes

Comment empêcher un navigateur de stocker les mots de passe

Je dois empêcher les navigateurs de stocker les valeurs de nom d'utilisateur et de mot de passe, car je travaille sur une application Web qui contient des données plus sécurisées. Mon client m'a demandé de le faire.

J'ai essayé l'attribut autocomplete="off" dans le formulaire HTML et les champs de mot de passe. Mais cela ne fonctionne pas dans les navigateurs récents comme Chrome 55, Firefox 38+, Internet Explorer 11, etc.

Quelle est la meilleure solution pour cela?

1 votes

J'ai une situation similaire - une application web interne avec une zone réservée aux techniciens de support où le mot de passe débloque des fonctionnalités non sécurisées de l'application. Permettre à l'utilisateur final d'y accéder serait très nuisible, donc oui, il y a des situations valides où vous ne voulez pas que les mots de passe soient enregistrés. Toujours à la recherche d'une réponse qui fonctionne, au fait.

0 votes

Un cas d'utilisation est lorsque les utilisateurs partagent un ordinateur, mais ont besoin de se connecter individuellement à une application web.

0 votes

Ma solution est un peu bidouillage, mais j'ai utilisé du JS pour vider le champ.

59voto

Sree Points 604

Merci d'avoir donné une réponse. J'ai suivi le lien ci-dessous

Désactiver la fonctionnalité de sauvegarde des mots de passe du navigateur

J'ai résolu le problème en ajoutant simplement les attributs readonly et onfocus="this.removeAttribute('readonly');" en plus de autocomplete="off" aux entrées comme montré ci-dessous.

Cela fonctionne bien pour moi.

0 votes

L'attribut autocomplete n'est plus pris en charge par les navigateurs

2 votes

J'ai essayé cela, cela ne fonctionne pas aussi spécialement dans Firefox Dev Edition

0 votes

Ma solution est un peu de bidouillage, mais j'ai utilisé JS pour effacer le champ.

41voto

4castle Points 20341

Essayer d'empêcher le navigateur de stocker des mots de passe n'est pas recommandé. Il existe des solutions de contournement qui peuvent le faire, mais les navigateurs modernes ne fournissent pas cette fonctionnalité par défaut et pour de bonnes raisons. Les navigateurs modernes stockent les mots de passe dans des gestionnaires de mots de passe afin de permettre aux utilisateurs d'utiliser des mots de passe plus forts qu'ils ne le feraient normalement.

Comme expliqué par MDN: Comment désactiver l'autocomplétion de formulaire:

Les navigateurs modernes implémentent une gestion intégrée des mots de passe : lorsque l'utilisateur entre un nom d'utilisateur et un mot de passe pour un site, le navigateur propose de le retenir pour l'utilisateur. Lorsque l'utilisateur visite à nouveau le site, le navigateur pré-remplit les champs de connexion avec les valeurs mémorisées.

De plus, le navigateur permet à l'utilisateur de choisir un mot de passe principal que le navigateur utilisera pour chiffrer les détails de connexion stockés.

Même sans mot de passe principal, la gestion des mots de passe dans le navigateur est généralement considérée comme un gain net pour la sécurité. Comme les utilisateurs n'ont pas à se souvenir des mots de passe que le navigateur stocke pour eux, ils peuvent choisir des mots de passe plus forts qu'ils ne le feraient autrement.

Pour cette raison, de nombreux navigateurs modernes ne prennent pas en charge autocomplete="off" pour les champs de connexion:

  • Si un site définit autocomplete="off" pour un formulaire, et que le formulaire comprend des champs de saisie de nom d'utilisateur et de mot de passe, alors le navigateur proposera toujours de retenir cette connexion, et si l'utilisateur accepte, le navigateur pré-remplira ces champs la prochaine fois que l'utilisateur visitera la page.

  • Si un site définit autocomplete="off" pour les champs de saisie de nom d'utilisateur et de mot de passe, alors le navigateur proposera toujours de retenir cette connexion, et si l'utilisateur accepte, le navigateur pré-remplira ces champs la prochaine fois que l'utilisateur visitera la page.

C'est le comportement dans Firefox (depuis la version 38), Google Chrome (depuis la version 34) et Internet Explorer (depuis la version 11).

Si un auteur souhaite empêcher le pré-remplissage des champs de mot de passe dans les pages de gestion des utilisateurs où un utilisateur peut spécifier un nouveau mot de passe pour quelqu'un d'autre que lui-même, autocomplete="new-password" doit être spécifié, bien que la prise en charge de cela n'ait pas encore été implémentée dans tous les navigateurs.

3 votes

Il est tellement, tellement facile de révéler un mot de passe dans un navigateur. Il suffit d'ouvrir les outils de développement, de changer le type d'entrée de mot de passe en texte, et voilà ! C'est fait.

20 votes

Il y a des cas d'utilisation où un gestionnaire de mots de passe n'a aucun sens. Comme lors d'un changement de mot de passe. autocomplete="new-password" ne fonctionne pas pour moi sur Firefox 55.0.3 x64

0 votes

Merci, cela a fonctionné pour moi et c'est très simple. J'utilise Chome Version 64.0.3282.186 (Build officiel) (64 bits)

21voto

Natro90 Points 67

Voici une solution pure en HTML/CSS pour Chrome testée en version 65.0.3325.162 (official build) (64-bit).

Définissez l'entrée type="text" et utilisez CSS text-security:disc pour imiter type="password".

  • Note : Fonctionne dans Firefox mais le CSS moz-text-security est Obsolète/Supprimé. Pour corriger cela, créez un CSS font-face constitué uniquement de points et utilisez font-family: 'dotsfont';.

    Source : Get input type=text to look like type=password

    La source ci-dessus contient un lien vers une solution de contournement pour la propriété CSS moz-text-security et -webkit-text-security.

    Source : https://github.com/kylewelsby/dotsfont

Dans la mesure de mes tests, cette solution fonctionne pour Chrome, Firefox version 59.0 (64-bit), Internet Explorer version 11.0.9600 ainsi que les SIMULATEURS IE Internet Explorer 5 et supérieurs.

4 votes

Cela peut être une mauvaise idée, étant donné que le champ de mot de passe possède certaines propriétés de sécurité additionnelles - par exemple ne pas pouvoir copier-coller le texte à l'intérieur.

1 votes

@tXK Je suis d'accord avec toi.. mais tu peux copier/coller du texte à l'intérieur d'un champ de mot de passe avec une astuce rapide par exemple En chrome, faites un clic droit sur le champs de mot de passe, allez dans Inspecter puis changez type= "password" en type= "text".

4 votes

La copie / le collage ne devrait pas être considéré comme un problème dans les champs de mot de passe, car c'est la base théorique des gestionnaires de mots de passe. Demandez à Troy Hunt.

14voto

Simon Briggs Points 466

Vous devriez pouvoir créer une fausse boîte de mot de passe cachée pour la prévenir.

0 votes

Génie! :) Je lui donnerais cependant une valeur, comme value="x". Et je n'utiliserais pas display:none, mais un emplacement absurde en dehors de la fenêtre, ou un z-index négatif.

0 votes

Que dire de ?

3 votes

Dans le navigateur firefox 84.0b5 (64-bit), cette version ne fonctionne pas.

0voto

Ratnakar Reddy Points 1

Je pense que ce n'est pas possible dans les derniers navigateurs.

La seule façon de le faire est de prendre un autre champ de mot de passe caché et de l'utiliser pour votre logique après avoir pris la valeur du champ de mot de passe visible lors de la soumission et mettre une chaîne factice dans le champ de mot de passe visible.

Dans ce cas, le navigateur peut stocker une chaîne factice au lieu du mot de passe réel.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X