Type d'entrée=mot de passe, ne laissez pas le navigateur se souvenir du mot de passe

je me souviens d'avoir vu une façon d'avoir un <input type="password" /> tel que le navigateur pas invite l'utilisateur à enregistrer le mot de passe. Mais je m'inspire un espace. Y a-t-il un attribut HTML ou un truc JavaScript qui fera cela?

90
demandé sur halfer 2009-01-22 10:13:56

13 réponses

essayez autocomplete="off" . Je ne sais pas si chaque navigateur le supporte, cependant. MSDN docs here .

modifier : Note: la plupart des navigateurs ont abandonné la prise en charge de cet attribut. Voir autocomplete=" off " compatible avec tous les navigateurs modernes?

C'est sans doute quelque chose qui devrait être laissé à l'utilisateur, plutôt que le concepteur du site web.

116
répondu tvanfosson 2017-05-23 11:47:18

<input type="password" autocomplete="off" />

je voudrais juste ajouter qu'en tant qu'utilisateur, je pense que c'est très ennuyeux et pénible à surmonter. Je recommande fortement de ne pas l'utiliser car il sera plus que probablement aggraver vos utilisateurs.

Les mots de passe

ne sont déjà pas stockés dans le MRU, et les machines publiques correctement configurées ne sauvegarderont même pas le nom d'utilisateur.

60
répondu matpie 2009-01-22 07:34:36

j'ai résolu d'une autre manière. Vous pouvez essayer cette.

<input id="passfld" type="text" autocomplete="off" />
<script type="text/javascript">
// Using jQuery
$(function(){                                               
    setTimeout(function(){
        $("input#passfld").attr("type","password");
    },10);
});


// or in pure javascript
 window.onload=function(){                                              
    setTimeout(function(){  
        document.getElementById('passfld').type = 'password';
    },10);
  }   
</script>

#une autre façon

 <script type="text/javascript">    
 function setAutoCompleteOFF(tm){
    if(typeof tm =="undefined"){tm=10;}
    try{
    var inputs=$(".auto-complete-off,input[autocomplete=off]"); 
    setTimeout(function(){
        inputs.each(function(){     
            var old_value=$(this).attr("value");            
            var thisobj=$(this);            
            setTimeout(function(){  
                thisobj.removeClass("auto-complete-off").addClass("auto-complete-off-processed");
                thisobj.val(old_value);
            },tm);
         });
     },tm); 
    }catch(e){}
  }
 $(function(){                                              
        setAutoCompleteOFF();
    });
</script>

// vous devez ajouter l'attribut autocomplete="off" ou vous pouvez ajouter une classe .auto-complete-off dans la boîte de saisie et profiter de

exemple:

  <input id="passfld" type="password" autocomplete="off" />
    OR
  <input id="passfld" class="auto-complete-off" type="password"  />
11
répondu SarwarCSE 2016-11-01 08:15:32

en ce qui concerne les questions de sécurité, voici ce qu'un consultant en sécurité vous dira sur l'ensemble de la question de terrain (tiré d'un audit de sécurité indépendant):

HTML Autocomplete Enabled-Password fields in HTML forms have autocomplete enabled. La plupart des navigateurs ont une fonction de mémorisation des justificatifs d'identité entrés dans les formulaires HTML.

Risque Relatif: Faible

Systèmes/Dispositifs Concernés: o https:// * ** * *** /

je suis également d'accord que cela devrait couvrir tout champ qui contient des données vraiment privées. Je pense qu'il est correct de forcer une personne à toujours taper les informations de sa carte de crédit, code CVC, mots de passe, noms d'utilisateur, ETC chaque fois que ce site va accéder à tout ce qui doit être maintenu en sécurité [universellement ou par les exigences de conformité juridique]. Pour exemple: formulaires d'achat, sites de banque/Crédit, sites fiscaux, données médicales, fédéral, nucléaire, etc - pas Sites comme le débordement de la cheminée ou Facebook.

autres types de sites - e.g. TimeStar en ligne pour le pointage dans et hors du travail - c'est stupide, puisque j'utilise toujours le même PC/compte au travail, que je ne peux pas enregistrer les informations d'identification sur ce site - assez étrangement, je peux sur mon Android, mais pas sur un iPad. Même sur les PC partagés, ce ne serait pas trop mal puisque le clocking entre / sort pour quelqu'un d'autre n'a vraiment rien faire d'autre que d'ennuyer votre superviseur. (Ils doivent entrer et supprimer les punchs erronés - il suffit de choisir de ne pas enregistrer sur les PC publics).

5
répondu Michael R Lewis 2014-02-26 16:42:18

j'ai essayé ce qui suit et il semble que fonctionne à n'importe quel navigateur:

<input id="passfld" type="text" autocomplete="off" />

<script type="text/javascript">
    $(function(){  
        var passElem = $("input#passfld");
        passElem.focus(function() { 
            passElem.prop("type", "password");                                             
        });
    });
</script>

cette façon est beaucoup plus sûre que d'utiliser des techniques de timeout, parce qu'elle garantit que le champ d'entrée cédera au mot de passe quand l'utilisateur le focalise.

5
répondu Apostolidis 2016-03-10 17:21:43

Voici la meilleure réponse, et la plus facile! Mettez un champ de mot de passe supplémentaire devant votre champ input et mettez le display:none , de sorte que lorsque le navigateur le remplit, il le fait dans un input que vous ne vous souciez pas.

Modifiez ce qui suit:

<input type="password" name="password" size="25" class="input" id="password" value="">

à ceci:

<input type="password" style="display:none;">
<input type="password" name="password" size="25" class="input" id="password" value="">
3
répondu Captain Fantastic 2016-09-13 14:07:29

vous pouvez utiliser JQuery, sélectionnez l'élément par id:

$("input#Password").attr("autocomplete","off");

ou sélectionnez l'article par type:

$("input[type='password']").attr("autocomplete","off");

ou aussi:

vous pouvez utiliser pur Javascript:

document.getElementById('Password').autocomplete = 'off';
2
répondu Fernando 2012-09-10 21:17:12

vous pouvez également l'utiliser comme suit

$('#Password').attr("autocomplete", "off");
setTimeout('$("#Password").val("");', 2000);
1
répondu Chandrika Prajapati 2014-07-04 11:15:40

Lire aussi cette réponse où il est à l'aide de cette solution de facilité qui fonctionne partout (voir également le correctif pour Safari mobile):

<input type="password" readonly onfocus="this.removeAttribute('readonly');"/>
1
répondu Ferie 2017-11-01 12:58:21

dans le cas de la plupart des navigateurs importants, le fait d'avoir une entrée à l'extérieur et non reliée à un formulaire, fait croire au navigateur qu'il n'y avait pas de soumission. Dans ce cas, vous devrez utiliser la validation js pure pour votre login et le cryptage de vos mots de passe sera également nécessaire.

avant:

<form action="..."><input type="password"/></form>

après:

<input type="password"/>
0
répondu IamGuest 2017-01-02 19:22:43

j'ai trouvé les travaux suivants sur Firefox et Chrome.

<form ... > <!-- more stuff -->
<input name="person" type="text" size=30 value="">
<input name="mypswd" type="password" size=6 value="" autocomplete="off">
<input name="userid" type="text" value="security" style="display:none">
<input name="passwd" type="password" value="faker" style="display:none">
<!-- more stuff --> </form>

tous ces documents se trouvent dans la section Formulaires. "personne" et "mypswd" sont ce que vous voulez, mais le navigateur sauvera "userid" et "passwd" une fois, et jamais plus, car ils ne changent pas. Vous pouvez éliminer le champ" personne " si vous n'en avez pas vraiment besoin. Dans ce cas, tout ce que vous voulez est le champ "mypswd", qui pourrait changer d'une manière connue de l'utilisateur de votre page web.

0
répondu Dick Guertin 2017-03-28 21:46:26

le seul moyen que je puisse obtenir firefox, edge, et Internet explorer pour éteindre autocomplete est d'ajouter autocomplete= "false" dans ma déclaration de forme comme:

  <form action="postingpage.php" autocomplete="false" method="post">

et je dois ajouter l'autocomplete= "off" à mon entrée de formulaire et changer le type de texte comme:

     <input type="text" autocomplete="off">

il semble que ce code html doive être standardisé avec les navigateurs. le formulaire type = mot de passe doit être révisé afin qu'il remplace les paramètres du navigateur. La seule problème que j'ai est que j'ai perdu mon entrée de masquage. Mais du bon côté, l'ennuyeux "ce site n'est pas sécurisé" n'apparaît pas dans firefox.

pour moi, ce n'est pas grand chose puisque l'utilisateur est déjà authentifié et sa partie mon nom d'utilisateur et mot de passe de changement de celui-ci

0
répondu drtechno 2017-06-02 21:58:32
<input type="password" placeholder="Enter New Password" autocomplete="new-password">

voilà.

0
répondu Bhaumik Thakkar 2018-09-10 14:38:02