457 Stimmen

Deaktivieren Sie die Funktion "Passwort speichern" im Browser

Eine der Freuden der Arbeit für eine staatliche Gesundheitsbehörde ist der Umgang mit der Paranoia im Zusammenhang mit geschützten Gesundheitsinformationen (Protected Health Information, PHI). Verstehen Sie mich nicht falsch, ich bin dafür, alles zu tun, um die persönlichen Daten der Menschen (Gesundheit, Finanzen, Surfgewohnheiten usw.) zu schützen, aber manchmal werden die Leute etwas zu nervös.

Ein typisches Beispiel: Einer unserer staatlichen Kunden hat kürzlich herausgefunden, dass der Browser die praktische Funktion bietet, das Passwort zu speichern. Wir alle wissen, dass es diese Funktion schon seit einiger Zeit gibt, dass sie völlig optional ist und dass es im Ermessen des Endnutzers liegt, ob er sie nutzen möchte oder nicht. Im Moment gibt es jedoch einen kleinen Aufruhr, und wir werden aufgefordert, eine Möglichkeit zu finden, diese Funktion für unsere Website zu deaktivieren.

Question : Gibt es eine Möglichkeit, dem Browser mitzuteilen, dass er sich keine Passwörter merken soll? Ich beschäftige mich schon lange mit Webentwicklung, aber ich weiß nicht, ob ich das schon einmal gesehen habe.

Für jede Hilfe sind wir dankbar.

335voto

Markus Olsson Punkte 21942

Ich bin nicht sicher, ob es in allen Browsern funktioniert, aber Sie sollten versuchen, autocomplete="off" im Formular einzustellen.

<form id="loginForm" action="login.cgi" method="post" autocomplete="off">

Der einfachste Weg, das Formular zu deaktivieren und die Aufforderung zum Speichern des Passworts und zu verhindern, dass Formulardaten im Sitzungsverlauf zwischengespeichert werden, ist die Verwendung des Attributs des Formularelements autocomplete mit dem Wert "off".

Von https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion

Einige kleinere Nachforschungen zeigen, dass dies auch im IE funktioniert, aber ich werde keine Garantien geben ;)

@Joseph : Wenn es eine strenge Anforderung ist, die XHTML-Validierung mit dem eigentlichen Markup zu bestehen (ich weiß nicht, warum das so sein sollte), könnten Sie dieses Attribut theoretisch nachträglich mit Javascript hinzufügen, aber dann werden Benutzer mit deaktiviertem Javascript (wahrscheinlich ein vernachlässigbarer Anteil Ihrer Benutzerbasis oder null, wenn Ihre Website Javascript erfordert) ihre Passwörter trotzdem gespeichert haben.

Beispiel mit jQuery:

$('#loginForm').attr('autocomplete', 'off');

60voto

Murat Yıldız Punkte 10369

Zusätzlich zu

autocomplete="off"

Verwenden Sie

readonly onfocus="this.removeAttribute('readonly');"

für die Eingaben, die sich nicht an Formulardaten erinnern sollen ( username , password usw.) wie unten dargestellt:

<input type="text" name="UserName" autocomplete="off" readonly 
    onfocus="this.removeAttribute('readonly');" >

<input type="password" name="Password" autocomplete="off" readonly 
    onfocus="this.removeAttribute('readonly');" >

Getestet mit den neuesten Versionen der wichtigsten Browser, d.h. Google Chrome , Mozilla Firefox , Microsoft Edge usw. und funktioniert wie ein Zauber. Hoffentlich hilft das.

38voto

Mike Stone Punkte 43560

Ich habe mich schon eine Weile mit diesem Problem herumgeschlagen, wobei das Problem eine einzigartige Wendung genommen hat. Privilegierte Benutzer konnten die gespeicherten Kennwörter nicht für sich arbeiten lassen, aber normale Benutzer brauchten sie. Das bedeutete, dass privilegierte Benutzer sich zweimal anmelden mussten, wobei beim zweiten Mal keine gespeicherten Kennwörter verwendet werden durften.

Mit dieser Anforderung wird der Standard autocomplete="off" Methode funktioniert nicht in allen Browsern, da das Kennwort möglicherweise schon bei der ersten Anmeldung gespeichert wurde. Ein Kollege fand eine Lösung, um das Kennwortfeld zu ersetzen, wenn es fokussiert wurde, und dann den Fokus auf das neue Kennwortfeld zu setzen (und dann denselben Event-Handler zu verwenden). Das funktionierte (außer dass es im IE6 eine Endlosschleife verursachte). Vielleicht gab es eine Möglichkeit, das zu umgehen, aber es verursachte bei mir eine Migräne.

Schließlich habe ich versucht, den Benutzernamen und das Kennwort außerhalb des Formulars einzugeben. Zu meiner Überraschung funktionierte das! Es funktionierte mit IE6 und den aktuellen Versionen von Firefox und Chrome unter Linux. Ich habe es nicht weiter getestet, aber ich vermute, dass es in den meisten, wenn nicht in allen Browsern funktioniert (aber es würde mich nicht überraschen, wenn es einen Browser gäbe, dem es egal wäre, wenn es kein Formular gäbe).

Hier ist einige Beispiel-Code, zusammen mit einigen jQuery, um es zum Laufen zu bringen:

<input type="text" id="username" name="username"/>
<input type="password" id="password" name="password"/>

<form id="theForm" action="/your/login" method="post">
  <input type="hidden" id="hiddenUsername" name="username"/>
  <input type="hidden" id="hiddenPassword" name="password"/>
  <input type="submit" value="Login"/>
</form>

<script type="text/javascript" language="JavaScript">
  $("#theForm").submit(function() {
    $("#hiddenUsername").val($("#username").val());
    $("#hiddenPassword").val($("#password").val());
  });
  $("#username,#password").keypress(function(e) {
    if (e.which == 13) {
      $("#theForm").submit();
    }
  });
</script>

31voto

whyAto8 Punkte 1570

Nun, es ist ein sehr alter Beitrag, aber ich werde trotzdem meine Lösung vorstellen, die mein Team seit langem zu erreichen versucht hat. Wir haben einfach ein neues input type="password" Feld innerhalb des Formulars hinzugefügt und es in ein div eingepackt und das div versteckt. Wir haben dafür gesorgt, dass dieses div vor der eigentlichen Passworteingabe steht. Das hat bei uns funktioniert und es gab keine Option "Passwort speichern".

Plunk - http://plnkr.co/edit/xmBR31NQMUgUhYHBiZSg?p=preview

HTML:

<form method="post" action="yoururl">
      <div class="hidden">
        <input type="password"/>
      </div>
      <input type="text" name="username" placeholder="username"/>
      <input type="password" name="password" placeholder="password"/>
    </form>

CSS:

.hidden {display:none;}

17voto

Joel Coehoorn Punkte 377088

Sie können verhindern, dass der Browser die Formulare abgleicht, indem Sie den Namen, der für das Passwortfeld verwendet wird, in jeder Show zufällig wählen. Dann sieht der Browser ein Passwort für dieselbe URL, kann aber nicht sicher sein, dass es sich um die gleiches Passwort . Vielleicht steuert es etwas anderes.

Aktualisierung: beachten Sie, dass dies zusätzlich zu mit Autovervollständigung oder anderen Taktiken, nicht als Ersatz für sie, aus den von anderen genannten Gründen.

Beachten Sie auch, dass dies nur verhindert, dass der Browser Autovervollständigung das Passwort. Es wird nicht verhindern, dass es Speicherung von das Kennwort in einer beliebigen Sicherheitsstufe, die der Browser verwenden kann.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X