Deaktivieren Sie die Browser-Funktion "Passwort speichern"

423

Eine der Freuden bei der Arbeit für eine staatliche Gesundheitsbehörde ist es, mit all der Paranoia im Umgang mit PHI (Protected Health Information) fertig zu werden. Versteh mich nicht falsch, ich bin alles 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 zum Speichern Ihres Passworts bietet. Wir alle wissen, dass es schon eine Weile da ist und völlig optional ist und es dem Endbenutzer überlassen bleibt, zu entscheiden, ob es eine kluge Entscheidung ist, es zu verwenden oder nicht. Im Moment herrscht jedoch ein gewisser Aufruhr, und wir werden aufgefordert, einen Weg zu finden, um diese Funktionalität für unsere Website zu deaktivieren.

Frage : Gibt es eine Möglichkeit für eine Website, den Browser anzuweisen, keine Passwörter zu speichern? Ich habe mich schon lange mit Webentwicklung beschäftigt, weiß aber nicht, dass ich darauf schon einmal gestoßen bin.

Jede Hilfe wird geschätzt.

mattsmith321
quelle
6
Sie sollten ein greasemonkey-Skript bereitstellen, damit die Benutzer es wieder aktivieren können. Ich glaube nicht, dass Benutzer jedes Mal gezwungen werden müssen, das Passwort
einzugeben
14
Die Frage verdient eine positive Bewertung, weil sie nützlich und klar ist. Andererseits möchte ich nicht, dass die Leute eine Lösung für dieses "Problem" finden.
Ian Boyd
11
Dies ist nicht immer ein "Problem". Ich bin hierher gekommen, weil Firefox Sie auffordert, ein Passwort für ein Formular zu speichern, das ein WiFi / SSID-Passwort enthält, kein Login-Benutzername / Passwort-Formular. Es ist sehr nervig und ich möchte damit aufhören.
srd
1
Wenn die Informationen so kritisch sind, sollten sie durch mehr als nur ein Passwort geschützt werden.
Sam Watkins
Eine Möglichkeit, wie es zu funktionieren scheint, besteht darin, <form> nicht zu verwenden. Wenn Sie zum Senden der Daten (XHR) Javascript verwenden, benötigen Sie diese nicht. Ich wollte in einem System deaktivieren, das die Authentifizierung "Einmalkennwort" verwendet (kein Grund, sie zu speichern). Für Benutzer- / Pass-Authentifizierungen würde ich nicht empfehlen, diese Funktion zu deaktivieren.
Lepe

Antworten:

322

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

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

Die einfachste und einfachste Möglichkeit, die Eingabeaufforderungen für die Formular- und Kennwortspeicherung zu deaktivieren und zu verhindern, dass Formulardaten im Sitzungsverlauf zwischengespeichert werden, besteht darin, das Attribut für die automatische Vervollständigung des Formularelements mit dem Wert "off" zu verwenden.

Von http://developer.mozilla.org/En/How_to_Turn_Off_Form_Autocompletion

Einige kleinere Untersuchungen zeigen, dass dies im IE funktioniert, aber ich werde keine Garantien hinterlassen;)

@Joseph : Wenn es eine strikte Anforderung ist, die XHTML-Validierung mit dem tatsächlichen Markup zu bestehen (ich weiß nicht, warum das so ist), können Sie dieses Attribut theoretisch später mit Javascript hinzufügen, aber dann Benutzer mit deaktiviertem js (wahrscheinlich eine vernachlässigbare Menge Ihrer Benutzerbasis) oder Null, wenn Ihre Site js benötigt) werden ihre Passwörter weiterhin gespeichert.

Beispiel mit jQuery:

$('#loginForm').attr('autocomplete', 'off');
Markus Olsson
quelle
48
Nur ein kurzer Kommentar, da sich dies ändert, fügt HTML5 der Spezifikation das Attribut "Autocomplete" hinzu, sodass es jetzt gültig ist.
Tyler Egeto
11
Nur FYI, entschied Microsoft , dass Internet Explorer 11 wird nicht mehr Ehre autocomplete="off"für input type="password"Felder. msdn.microsoft.com/en-us/library/ie/ms533486%28v=vs.85%29.aspx
JW Lim
6
Genau wie @JWLim erwähnte, dass IE 11 die Unterstützung für das Deaktivieren der Funktion zum Speichern von Passwörtern aufgibt, gilt dies auch für Firefox. bugzilla.mozilla.org/show_bug.cgi?id=956906
Gregory Cosmo Haun
3
Firefox folgte (leider) dem Beispiel von Microsoft und "entfernte" auch die Unterstützung für die automatische Vervollständigung. Für Details siehe Kommentar 100 in der folgenden Problemdiskussion
Bouncing Bit
8
Jetzt nicht für Firefox 38+ arbeiten mozilla.org/en-US/firefox/38.0/releasenotes
Illuminator
44

Zusätzlich zu

autocomplete="off"

Verwenden

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

für die Eingaben, an die sie sich keine Formulardaten ( usw.) erinnern usernamesollen password, wie unten gezeigt:

<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 auf die neuesten Versionen der gängigen Browser , dh Google Chrome, Mozilla Firefox, Microsoft Edgeetc. und funktioniert wie ein Zauber. Hoffe das hilft.

Murat Yıldız
quelle
2
@ Murat Yıldız: Ich muss das gleiche implementieren und bin Ihrem Code gefolgt. Es funktioniert gut für mich in allen Browsern. Vielen Dank !
Sree
1
@ Free Ich bin froh, dass es für Sie hilfreich war :)
Murat Yıldız
3
Gerade getestet Mozilla Firefox 52.0 , Google Chrome 57.0 , Microsoft Edge 38.1 und funktioniert wie ein Zauber! ..
Murat Yıldız
1
Es kann ein Fehler in Safari Mobile auftreten, da diese Antwort das Problem behebt. Stackoverflow.com/questions/2530/…
Ferie
1
Windows Firefox 57.0.2 (64-Bit) schlägt weiterhin vor, das Kennwort zu speichern, nachdem ich dies implementiert habe.
Panu Haaramo
37

Ich hatte eine Weile mit diesem Problem zu kämpfen, mit einer einzigartigen Wendung des Problems. Privilegierte Benutzer konnten die gespeicherten Passwörter nicht für sie verwenden, aber normale Benutzer benötigten sie. Dies bedeutete, dass sich privilegierte Benutzer zweimal anmelden mussten, das zweite Mal, dass keine gespeicherten Passwörter erzwungen wurden.

Mit dieser Anforderung autocomplete="off"funktioniert die Standardmethode nicht in allen Browsern, da das Kennwort möglicherweise beim ersten Anmelden gespeichert wurde. Ein Kollege hat eine Lösung gefunden, um das Kennwortfeld zu ersetzen, wenn es durch ein neues Kennwortfeld fokussiert wurde, und sich dann auf das neue Kennwortfeld zu konzentrieren (und dann denselben Ereignishandler anzuschließen). Dies funktionierte (außer es verursachte eine Endlosschleife in IE6). Vielleicht gab es einen Ausweg, aber es verursachte mir eine Migräne.

Schließlich habe ich versucht, nur den Benutzernamen und das Passwort außerhalb des Formulars zu haben. Zu meiner Überraschung hat das funktioniert! Es funktionierte unter IE6 und aktuellen Versionen von Firefox und Chrome unter Linux. Ich habe es nicht weiter getestet, aber ich vermute, dass es in den meisten, wenn nicht 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 ein Beispielcode zusammen mit jQuery, damit es funktioniert:

<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>
Mike Stone
quelle
1
Das sieht nach einer guten Lösung aus. Dies ist sinnvoll, da das von Ihnen gesendete Formular selbst kein Kennwort enthält. Ich nehme an, Sie könnten zwei Formulare haben, das erste nur, um sicherzustellen, dass der Benutzername und das Passwort in allen Browsern sichtbar sind.
Alexis Wilke
3
Ich mag Ihre Lösung und habe eine ähnliche auf meiner Website implementiert. Es ist lächerlich, dass Browser heutzutage keine einfache Möglichkeit bieten, dies zu lösen.
AgelessEssence
Ich bin mir nicht sicher, ob es daran liegt, dass ich mit jquery 1.6 nicht weiterkomme, aber die obige jquery hat nur funktioniert, nachdem ich sie in ein $ (document) .ready (function () {}) eingeschlossen habe.
rgbflawed
Die einzig richtige Lösung ist dies, da einige Browser Autocomplete = "off" nicht mehr akzeptieren!
Abadis
1
Ich habe gerade diese Methode auf Chrome, Oper und Internet Explorer ausprobiert und sie scheint zu funktionieren, aber sie funktioniert nicht mit Firefox
Chenks
29

Nun, es ist ein sehr alter Beitrag, aber ich werde trotzdem meine Lösung geben, die mein Team schon lange zu erreichen versucht hatte. Wir haben gerade ein neues Feld für den Eingabetyp = "Passwort" in das Formular eingefügt und es in div eingeschlossen und das div ausgeblendet. Stellen Sie sicher, dass dieses div vor der eigentlichen Passworteingabe steht. Dies funktionierte für uns und es gab keine Option zum Speichern des Passworts

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;}
warumAto8
quelle
1
Ein Vorteil dieser Methode gegenüber denjenigen, die versteckte Eingaben verwenden, ist, dass auf diese Weise ein Passwort niemals in einem Klartextfeld gespeichert wird
pvgoddijn
@ whyAto8 Dies hat bei mir in Chrome 47.0.2526.111 nicht funktioniert ... der Trick, um es zum Laufen zu bringen, bestand darin, einen weiteren Feldtext in das versteckte div einzufügen. Der Browser fragt nach dem Speichern des Passworts, ABER es heißt "Sind Sie sicher, diese Crendetials zu speichern?" und dann werden ein leerer Benutzername und ein leeres Passwort angezeigt. Das hat funktioniert.
David Bélanger
1
Die Lösung von whyAto8 zusammen mit dem Kommentar von @David Bélanger hat bei mir funktioniert (keine der anderen Lösungen hat dies getan). Ich sollte auch erwähnen, dass ich die beiden leeren ausgeblendeten Felder VOR den tatsächlich für die Dateneingabe verwendeten hinzugefügt habe und die duplizierten (ausgeblendeten) Felder die gleichen Namen hatten. Auf diese Weise fragte Chrome (48.0.2564.103) nicht einmal, ob ein Passwort gespeichert werden sollte.
Vadim
In Chrome 48.0.2564.116 funktioniert keine Kombination davon. Selbst in Kombination mit DavidBelangers Kommentar speichert das Chrome-Popup, in dem Sie aufgefordert werden, das Kennwort zu speichern, das Kennwort zwischen, wenn Sie auf
OK
Große Antwort .. Nur können Sie mir bitte sagen , warum hast du gesagt „sorgte dafür , dass dieses div vor dem Eingang eigentliche Passwort ist“ ? Ich habe das div nach der eigentlichen Passworteingabe eingefügt und es funktioniert immer noch. Warum hast du das erwähnt?
Martin AJ
16

Sie können verhindern, dass der Browser mit den Formularen übereinstimmt, indem Sie den Namen, der für das Kennwortfeld in jeder Show verwendet wird, zufällig auswählen. Dann sieht der Browser ein Passwort für dieselbe URL, kann jedoch nicht sicher sein, ob es dasselbe Passwort ist . Vielleicht kontrolliert es etwas anderes.

Update: Beachten Sie, dass dies zusätzlich zur Verwendung der automatischen Vervollständigung oder anderer Taktiken und nicht als Ersatz für diese aus den von anderen angegebenen Gründen erfolgen sollte.

Beachten Sie auch, dass dies nur verhindert, dass der Browser das Kennwort automatisch vervollständigt . Es wird nicht verhindert, dass das Kennwort in einer beliebigen willkürlichen Sicherheitsstufe gespeichert wird, die der Browser verwendet.

Joel Coehoorn
quelle
5
[@Joel] (# 32409), der möglicherweise verhindert, dass das Formular automatisch ausgefüllt wird, aber den Browser daran hindert, das Kennwort für dieses angeblich neue Formular zu speichern ?
Joseph Pecoraro
3
Ich glaube nicht, dass das jetzt funktionieren wird. In FF 13 habe ich ein Formular mit mehreren Passwortfeldern, alle mit unterschiedlichen Namen. Sobald FF ein Kennwort für diese Seite gespeichert hat, wird das gespeicherte Kennwort in ALLE Kennwortfelder eingefügt. Es ist egal, wie die Felder heißen (ich habe zum Beispiel "new_password" und "old_password" und das gespeicherte Passwort wird in beide Felder geschrieben). In dieser speziellen Form habe ich keinen Benutzernamen, unter dem ich das Passwort speichern kann - nur zwei Passwortfelder, falls dies einen Unterschied macht.
Jason
1
Nickt @Jason und gibt dem Passwortfeld jedes Mal eine neue UUID für einen Namen, um die Versuche des Browsers, ihn auszufüllen, nicht zu vereiteln.
FP Freely
14

Verwenden Sie eine echte Zwei-Faktor-Authentifizierung , um die alleinige Abhängigkeit von Kennwörtern zu vermeiden, die möglicherweise an viel mehr Orten als im Browser-Cache des Benutzers gespeichert sind.

David Schmitt
quelle
2
Übrigens ist es Authentifizierung, nicht Authentifizierung
Jonathan.
26
@ Jonathan Schade, ich bevorzuge Authentifizierung
Ian Boyd
Eine andere Lösung könnte die Implementierung eines JavaScript sein, das den Browser zwangsweise schließt, sobald der Benutzer von der Anwendung abgemeldet ist. Dadurch wird der gesamte Speicher des Browsers geleert, und daher können keine Daten aus dem Speicher des Browsers abgerufen werden.
Ajay Takur
13

Der sauberste Weg ist die Verwendung des autocomplete="off"Tag-Attributs, aber Firefox befolgt es nicht richtig, wenn Sie Felder mit Tab wechseln.

Die einzige Möglichkeit, dies zu stoppen, besteht darin, ein falsches verstecktes Kennwortfeld hinzuzufügen, das den Browser dazu verleitet, das Kennwort dort aufzufüllen.

<input type="text" id="username" name="username"/>
<input type="password" id="prevent_autofill" autocomplete="off" style="display:none" tabindex="-1" />
<input type="password" id="password" autocomplete="off" name="password"/>

Es ist ein hässlicher Hack, weil Sie das Browserverhalten ändern, was als schlechte Praxis angesehen werden sollte. Verwenden Sie es nur, wenn Sie es wirklich brauchen.

Hinweis: Dadurch wird das automatische Ausfüllen von Kennwörtern effektiv gestoppt, da FF den Wert von #prevent_autofill(der leer ist) "speichert" und versucht, alle gespeicherten Kennwörter dort aufzufüllen, da immer die erste type="password"Eingabe verwendet wird, die im DOM nach dem jeweiligen "Benutzernamen" gefunden wird. Eingang.

venimus
quelle
Was bringt es, den Browser daran zu hindern, das Passwort einzugeben, es aber zu speichern? Es täuscht den Benutzer nur vor, dass sein Passwort nicht gespeichert wird, solange er tatsächlich anfällig ist.
CodesInChaos
Auf diese Weise wird Ihr Passwort nicht gespeichert, da Sie in das andere Feld eingeben, das von FF ignoriert wird. Stattdessen wird eine leere Zeichenfolge gespeichert.
Venimus
@CodesInChaos IMHO sollten Sie Ihre Ablehnung überdenken, weil Ihr Anliegen nicht gültig ist
venimus
12

Ich habe getestet, dass das Hinzufügen von autocomplete = "off" im Formular-Tag in allen gängigen Browsern erfolgt. Tatsächlich verwenden die meisten Menschen in den USA bisher IE8.

  1. IE8, IE9, IE10, Firefox, Safari funktionieren einwandfrei.

    Browser fragt nicht nach "Passwort speichern". Außerdem wurden zuvor gespeicherte Benutzernamen und Passwörter nicht ausgefüllt.

  2. Chrome & IE 11 unterstützen die Funktion "Autocomplete =" off "nicht
  3. FF unterstützt die automatische Vervollständigung = "aus". Manchmal werden jedoch vorhandene gespeicherte Anmeldeinformationen ausgefüllt.

Aktualisiert am 11. Juni 2014

Im Folgenden finden Sie eine browserübergreifende Lösung mit Javascript, die in allen Browsern einwandfrei funktioniert.

Das "Formular" -Tag muss im Anmeldeformular entfernt werden. Legen Sie diese Anmeldeinformationen nach der clientseitigen Überprüfung in versteckter Form ab und senden Sie sie ab.

Fügen Sie außerdem zwei Methoden hinzu. eine zur Validierung "validateLogin ()" und eine andere zum Abhören des Enter-Ereignisses, während Sie in das Textfeld / Passwort / die Schaltfläche "checkAndSubmit ()" auf "Enter" klicken. Da das Anmeldeformular jetzt kein Formular-Tag hat, geben Sie hier ein Ereignis ein, das nicht funktioniert.

HTML

<form id="HiddenLoginForm" action="" method="post">
<input type="hidden" name="username" id="hidden_username" />
<input type="hidden" name="password" id="hidden_password" />
</form>

Username: <input type="text" name="username" id="username" onKeyPress="return checkAndSubmit(event);" /> 
Password: <input type="text" name="password" id="password" onKeyPress="return checkAndSubmit(event);" /> 
<input type="button" value="submit" onClick="return validateAndLogin();" onKeyPress="return checkAndSubmit(event);" /> 

Javascript

//For validation- you can modify as you like
function validateAndLogin(){
  var username = document.getElementById("username");
  var password = document.getElementById("password");

  if(username  && username.value == ''){
    alert("Please enter username!");
    return false;
  }

  if(password && password.value == ''){
    alert("Please enter password!");
    return false;
  }

  document.getElementById("hidden_username").value = username.value;
  document.getElementById("hidden_password").value = password.value;
  document.getElementById("HiddenLoginForm").submit();
}

//For enter event
function checkAndSubmit(e) {
 if (e.keyCode == 13) {
   validateAndLogin();
 }
}

Viel Glück!!!

Asik
quelle
Obwohl diese Antwort nützliche Informationen enthält, beantwortet sie nicht wirklich die Frage, wie Browser daran gehindert werden können, Kennwörter zu speichern.
JW Lim
@JW Lim, ich habe die Antwort aktualisiert. Bitte schauen Sie hinein. Vielen Dank!
Asik
@Sivakumar, Ok, bitte geben Sie das Betriebssystem und die Version von Safari an. damit andere sich dessen bewusst werden. es funktionierte in meinem System (Windows 8, Safary 5)
Asik
@ Asik Safari 8.0.3 und Mac OS 10.10
Sivakumar
7

Nicht wirklich - das einzige, was Sie realistisch tun können, ist, auf der Website Ratschläge zu geben. Möglicherweise können Sie ihnen vor der ersten Anmeldung ein Formular mit Informationen anzeigen, aus denen hervorgeht, dass nicht empfohlen wird, dass der Browser das Kennwort speichert.

Dann folgt der Benutzer sofort dem Rat, schreibt das Passwort auf eine Haftnotiz und klebt es auf seinen Monitor.

Jason Bunting
quelle
10
Sie müssen sich daran erinnern, dass dies eine Regierungsseite ist und solche Dinge politisch angeklagt sind. Wenn jemand oben sagt: "Es darf nicht so funktionieren", dann ist das, was realistisch ist, kein Teil der Gleichung. Das Problem kann in Post-It-Notizen verschoben werden, aber die Richtlinien für diese sind für eine andere Abteilung zu behandeln - das Problem wurde verschoben ;-) Und ich meine es ernst.
Jason
6

Was ich getan habe, ist eine Kombination aus Autocomplete = "off" und Löschen von Passwortfeldern mit einem Javascript / jQuery.

jQuery Beispiel:

$(function() { 
    $('#PasswordEdit').attr("autocomplete", "off");
    setTimeout('$("#PasswordEdit").val("");', 50); 
});

Wenn setTimeout()Sie verwenden, können Sie warten, bis der Browser das Feld ausgefüllt hat, bevor Sie es löschen. Andernfalls wird der Browser nach dem Löschen des Felds immer automatisch vervollständigt.

Howard Young
quelle
3

Wenn autocomplete = "off" nicht funktioniert ... entfernen Sie das Formular-Tag und verwenden Sie stattdessen ein div-Tag. Übergeben Sie dann die Formularwerte mit jquery an den Server. Das hat bei mir funktioniert.

Nikhil Dinesh
quelle
3

Da autocomplete = "off" für Kennwortfelder nicht funktioniert, muss man sich auf Javascript verlassen. Hier ist eine einfache Lösung, die auf den hier gefundenen Antworten basiert.

Fügen Sie Ihrem Passwortfeld das Attribut data-password-autocomplete = "off" hinzu:

<input type="password" data-password-autocomplete="off">

Schließen Sie das folgende JS ein:

$(function(){
    $('[data-password-autocomplete="off"]').each(function() {
        $(this).prop('type', 'text');
        $('<input type="password"/>').hide().insertBefore(this);
        $(this).focus(function() {
            $(this).prop('type', 'password');
        });
    });     
});

Diese Lösung funktioniert sowohl für Chrome als auch für FF.

mfernandes
quelle
Windows Firefox 57.0.2 (64-Bit) schlägt weiterhin vor, das Kennwort zu speichern, nachdem ich dies implementiert habe.
Panu Haaramo
2

Nur damit die Leute erkennen, dass das Attribut "Autocomplete" die meiste Zeit funktioniert, aber Power-User können es mithilfe eines Lesezeichens umgehen.

Wenn ein Browser Ihre Passwörter speichert, erhöht sich der Schutz vor Keylogging. Daher ist es möglicherweise am sichersten, Passwörter im Browser zu speichern, sie jedoch mit einem Hauptkennwort zu schützen (zumindest in Firefox).

Geworfen
quelle
2
"Aber Power-User können es umgehen" - das gilt für die meisten Anwendungsfunktionen, ob im Internet oder nicht, und sollte kein Grund sein, das System einzuschränken. Die Benutzer können ihre Kennwörter auch auf Post-its schreiben und auf ihren Monitor legen. Sie können aus Anwendungssicht nur so viel für die Sicherheit tun, und ein aussagekräftiges Standardverhalten (nicht lokal speichern) ist ein Anfang.
Niels Keurentjes
2

Ich habe eine Lösung, die helfen kann.

Sie könnten einen benutzerdefinierten Font-Hack durchführen. Erstellen Sie also eine benutzerdefinierte Schriftart, bei der alle Zeichen beispielsweise als Punkt / Kreis / Stern angezeigt werden. Verwenden Sie dies als benutzerdefinierte Schriftart für Ihre Website. Überprüfen Sie, wie Sie dies in inkscape tun: So erstellen Sie Ihre eigene Schriftart

Verwenden Sie dann in Ihrem Anmeldeformular:

<form autocomplete='off'  ...>
   <input type="text" name="email" ...>
   <input type="text" name="password" class="password" autocomplete='off' ...>
   <input type=submit>
</form>

Dann fügen Sie Ihre CSS hinzu:

@font-face {
    font-family: 'myCustomfont';
    src: url('myCustomfont.eot');
    src: url('myCustomfont?#iefix') format('embedded-opentype'),
         url('myCustomfont.woff') format('woff'),
         url('myCustomfont.ttf') format('truetype'),
         url('myCustomfont.svg#myCustomfont') format('svg');
    font-weight: normal;
    font-style: normal;

}
.password {
  font-family:'myCustomfont';
}

Ziemlich browserübergreifend kompatibel. Ich habe IE6 +, FF, Safari und Chrome ausprobiert. Stellen Sie einfach sicher, dass die von Ihnen konvertierte OET-Schriftart nicht beschädigt wird. Ich hoffe es hilft?

Dai Bok
quelle
1
wirklich saubere Lösung gibt es ein Passwort Schrift hier
Andrew
6
Wenn Sie eine solche Lösung verwenden, müssen Sie berücksichtigen, dass Benutzer den in dieses ähnlich aussehende Kennwortfeld eingegebenen Text frei kopieren können. Kopier- und Ausschneidefunktionen sind in echten Passwortfeldern deaktiviert.
2

Die einfachste Möglichkeit, dieses Problem zu lösen, besteht darin, INPUT-Felder außerhalb des FORM-Tags zu platzieren und zwei ausgeblendete Felder innerhalb des FORM-Tags hinzuzufügen. Dann in einem Submit-Ereignis-Listener, bevor die Formulardaten an den Server gesendet werden, kopieren Sie die Werte von der sichtbaren Eingabe in die unsichtbaren.

Hier ist ein Beispiel (Sie können es hier nicht ausführen, da die Formularaktion nicht auf ein echtes Anmeldeskript festgelegt ist):

<!doctype html>
<html>
<head>
  <title>Login & Save password test</title>
  <meta charset="utf-8">
  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
</head>

  <body>
      <!-- the following fields will show on page, but are not part of the form -->
      <input class="username" type="text" placeholder="Username" />
      <input class="password" type="password" placeholder="Password" />

      <form id="loginForm" action="login.aspx" method="post">
        <!-- thw following two fields are part of the form, but are not visible -->
        <input name="username" id="username" type="hidden" />
        <input name="password" id="password" type="hidden" />
        <!-- standard submit button -->
        <button type="submit">Login</button>
      </form>

    <script>
      // attache a event listener which will get called just before the form data is sent to server
      $('form').submit(function(ev) {
        console.log('xxx');
        // read the value from the visible INPUT and save it to invisible one
        // ... so that it gets sent to the server
        $('#username').val($('.username').val());
        $('#password').val($('.password').val());
      });
    </script>

  </body>
</html>

Knie-Cola
quelle
Windows Firefox 57.0.2 (64-Bit) schlägt weiterhin vor, das Kennwort zu speichern, nachdem ich dies implementiert habe.
Panu Haaramo
Nun, dies war nur ein Hack, der jederzeit aufhören könnte zu arbeiten :)
Knie-Cola
Dies ist die beste Option! Löschen Sie einfach das Passwortfeld, bevor Sie es senden: $ ('. password'). val ('')
ebelendez
2

Meine Problemumgehung für js (jquery) besteht darin , den Typ der Passworteingabe in Text auf dem Formular zu ändern . Das Passwort könnte für eine Sekunde sichtbar werden, daher verstecke ich auch die Eingabe kurz davor. Ich würde dies lieber nicht für Anmeldeformulare verwenden , aber es ist nützlich (zusammen mit autocomplete = "off"), zum Beispiel innerhalb des Verwaltungsteils der Website.

Versuchen Sie, dies in eine Konsole (mit jquery) zu stellen, bevor Sie das Formular senden.

$('form').submit(function(event) {
    $(this).find('input[type=password]').css('visibility', 'hidden').attr('type', 'text');
});

Getestet auf Chrome 44.0.2403.157 (64-Bit).

ovalek
quelle
1
Das funktioniert tatsächlich. Dies verhindert, dass der Browser das Passwort speichert. Um zu verhindern, dass das Passwort angezeigt wird, können Sie das Eingabefeld in ein verstecktes Div einschließen. Und Sie können dies bereits tun, wenn das DOM geladen ist. Sie müssen nicht warten, bis Sie das Formular abschicken.
Fähre Kranenburg
Funktioniert mit IE 11.0.9600.18161!
Lu55
Das ist wahr. Jetzt habe ich das in FF 44.0.2 versucht und dieser Hack funktioniert nicht mehr ... was für eine Schande. In Chrome funktioniert dies immer noch.
Ovalek
Sie können die Eingabe [Typ = Senden] oder die Schaltfläche [Typ = Senden] durch eine reguläre Schaltfläche [Typ = Schaltfläche] ersetzen und dies im Onclick-Handler tun. Wenn im Formular kein [Typ = Senden] vorhanden ist, wird auch verhindert, dass das Formular mit der Eingabetaste gesendet wird und die Eingabeaufforderung zum Speichern des Kennworts angezeigt wird.
Steven Don
2

Ich habe viele Lösungen getestet. Name des dynamischen Kennwortfelds, mehrere Kennwortfelder (für gefälschte nicht sichtbar), Änderung des Eingabetyps von "Text" in "Kennwort", automatische Vervollständigung = "Aus", automatische Vervollständigung = "Neues Kennwort", ... aber nichts hat es mit den letzten gelöst Browser.

Um das Passwort loszuwerden, habe ich das Passwort schließlich als Eingabefeld behandelt und den eingegebenen Text "verwischt".

Es ist weniger "sicher" als ein natives Kennwortfeld, da durch Auswahl des eingegebenen Textes dieser als Klartext angezeigt wird, das Kennwort jedoch nicht gespeichert wird. Es hängt auch davon ab, ob Javascript aktiviert ist.

Sie haben das Risiko geschätzt, die unten stehende Option zum Speichern des Kennworts im Navigator zu verwenden.

Während das Speichern von Passwörtern vom Benutzer verwaltet (pro Site deaktiviert) werden kann, ist dies für einen Personal Computer in Ordnung, nicht für einen "öffentlichen" oder gemeinsam genutzten Computer.

In meinem Fall handelt es sich um ein ERP, das auf gemeinsam genutzten Computern ausgeführt wird. Daher werde ich meine unten stehende Lösung ausprobieren.

<input style="background-color: rgb(239, 179, 196); color: black; text-shadow: none;" name="password" size="10" maxlength="30" onfocus="this.value='';this.style.color='black'; this.style.textShadow='none';" onkeypress="this.style.color='transparent'; this.style.textShadow='1px 1px 6px green';" autocomplete="off" type="text">
Cedric Simon
quelle
1

Markus hat einen tollen Punkt angesprochen. Ich habe mich entschlossen, das autocompleteAttribut nachzuschlagen und habe Folgendes erhalten:

Der einzige Nachteil bei der Verwendung dieses Attributs besteht darin, dass es nicht Standard ist (es funktioniert in IE- und Mozilla-Browsern) und die XHTML-Validierung fehlschlagen würde. Ich denke, dies ist ein Fall, in dem es jedoch sinnvoll ist, die Validierung zu unterbrechen. ( Quelle )

Ich muss also sagen, dass es zwar nicht zu 100% auf der ganzen Linie funktioniert, aber in den wichtigsten Browsern verarbeitet wird, sodass es eine großartige Lösung ist.

Joseph Pecoraro
quelle
Ich habe dieses Problem der Validierung gemäß den w3c-Standards. Die Sache ist, ich möchte diese Funktionalität für eine Mobile-Banking-Website. Ich gehe davon aus, dass mobile Browser streng genug sind und manchmal das Formular durcheinander bringen, wenn ein ungültiges Attribut verwendet wird. Was empfehlen Sie in diesem Fall?
Asgs
2
Ich denke, das ist ein alter Denkstil. Viele neuere mobile Browser basieren auf WebKit und unterstützen dieses Attribut entweder oder ignorieren es ordnungsgemäß. Mir ist nicht bekannt, wie andere Länder oder Browser in älteren Mobiltelefonen damit umgehen, aber der ordnungsgemäße Umgang mit Attributen / Elementen, die nicht bekannt sind, ist für einen guten Browser von grundlegender Bedeutung. Es "zukunftssicher", dass der Browser nicht kaputt geht, wenn sich das Web weiterentwickelt. Es kann zurückfallen (keine neuen Funktionen implementieren), aber es wird nicht kaputt gehen. Hoffe das hilft =)
Joseph Pecoraro
1
Es sollte eher ein Kommentar zu der angegebenen Antwort als eine Antwort auf die Frage selbst sein.
viam0Zah
1

Ich habe oben versucht autocomplete="off"und doch alles erfolgreich. Wenn Sie eckige js verwenden, empfehle ich, mit der Schaltfläche und dem ng-Klick zu gehen.

<button type="button" class="" ng-click="vm.login()" />

Dies hat bereits eine akzeptierte Antwort. Ich füge diese hinzu, wenn jemand das Problem mit der akzeptierten Antwort nicht lösen kann, kann er mit meinem Mechanismus gehen.

Danke für die Frage und die Antworten.

Lasitha Benaragama
quelle
Dies bricht offensichtlich das Drücken der Taste enteroder ab return, um ein Formular zu senden.
8eecf0d2
0

Eine Möglichkeit, die ich kenne, besteht darin, (zum Beispiel) JavaScript zu verwenden, um den Wert aus dem Kennwortfeld zu kopieren, bevor das Formular gesendet wird.

Das Hauptproblem dabei ist, dass die Lösung an JavaScript gebunden ist.

Wenn es mit JavaScript verknüpft werden kann, können Sie das Kennwort auch auf der Clientseite hashen, bevor Sie eine Anforderung an den Server senden.

Huppie
quelle
Hashing auf der Clientseite ist kein Ersatz für Hashing auf der Serverseite. Ich bin mir nicht sicher, ob es überhaupt Hilfe gibt (falls zusätzlich).
Brilliand
2
Das Zulassen von Hashing auf der Clientseite ist gefährlich, da ein Angreifer das Kennwort nicht aus dem Hash knacken muss, sondern sich nur mit dem Hash anmelden kann. Der Hash wird passwortäquivalent.
rjmunro
Ich stimme Brilliand zu, dass der Hash auf dem Client nur dann nützlich ist, wenn Sie auch einen Hash auf dem Server haben, bevor Sie das Passwort in Ihrer Datenbank speichern. Ein Hash auf der Client-Seite kann jedoch eine Reihe von Problemen mit Männern in der Mitte lösen. Da der Code Hackern (zumindest auf öffentlichen Websites) zur Verfügung steht, ist er wahrscheinlich nicht so nützlich, wie es scheint.
Alexis Wilke
0

Das eigentliche Problem ist viel tiefer als nur das Hinzufügen von Attributen zu Ihrem HTML-Code - dies ist ein häufiges Sicherheitsrisiko. Deshalb haben die Leute Hardwareschlüssel und andere verrückte Dinge für die Sicherheit erfunden.

Stellen Sie sich vor, Sie haben Autocomplete = "off", das in allen Browsern einwandfrei funktioniert. Würde das bei der Sicherheit helfen? Natürlich nicht. Benutzer notieren ihre Passwörter in Lehrbüchern auf Aufklebern auf ihrem Monitor, auf denen jeder Bürobesucher sie sehen kann, speichern sie in Textdateien auf dem Desktop und so weiter.

Im Allgemeinen sind Webanwendungen und Webentwickler in keiner Weise für die Sicherheit der Endbenutzer verantwortlich. Endbenutzer können sich nur selbst schützen. Im Idealfall MÜSSEN sie alle Passwörter im Kopf behalten und die Funktion zum Zurücksetzen von Passwörtern (oder den Administrator kontaktieren) verwenden, falls sie diese vergessen haben. Andernfalls besteht immer die Gefahr, dass das Passwort irgendwie gesehen und gestohlen wird.

Entweder haben Sie eine verrückte Sicherheitsrichtlinie mit Hardwareschlüsseln (wie einige Banken das Internet-Banking anbieten, bei dem im Grunde eine Zwei-Faktor-Authentifizierung verwendet wird) oder KEINE SICHERHEIT. Nun, das ist natürlich etwas übertrieben. Es ist wichtig zu verstehen, wovor Sie sich schützen möchten:

  1. Kein autorisierter Zugriff. Grundsätzlich reicht das einfachste Anmeldeformular aus. Manchmal werden zusätzliche Maßnahmen ergriffen, wie zufällige Sicherheitsfragen, CAPTCHAs, Kennwortschutz usw.
  2. Anmeldeinformationen schnüffeln. HTTPS ist ein MUSS, wenn Benutzer über öffentliche WLAN-Hotspots usw. auf Ihre Webanwendung zugreifen. Erwähnen Sie, dass Ihre Benutzer selbst mit HTTPS ihre Kennwörter regelmäßig ändern müssen.
  3. Insider-Angriff. Es gibt zwei Beispiele dafür, angefangen beim einfachen Stehlen Ihrer Passwörter aus dem Browser oder von Passwörtern, die Sie irgendwo auf dem Schreibtisch notiert haben (keine IT-Kenntnisse erforderlich), bis hin zum Fälschen von Sitzungen und Abfangen des lokalen Netzwerkverkehrs (sogar verschlüsselt). und weiter auf die Webanwendung zugreifen, als wäre es ein anderer Endbenutzer.

In diesem speziellen Beitrag sehe ich unzureichende Anforderungen an den Entwickler, die er aufgrund der Art des Problems - der Sicherheit der Endbenutzer - niemals lösen kann. Mein subjektiver Punkt ist, dass Entwickler grundsätzlich NEIN sagen und auf Anforderungsprobleme hinweisen sollten, anstatt ehrlich Zeit für solche Aufgaben zu verschwenden. Dies macht Ihr System nicht unbedingt sicherer, sondern führt eher zu Fällen mit Aufklebern auf Monitoren. Leider hören einige Chefs nur das, was sie hören wollen. Wenn ich Sie wäre, würde ich versuchen zu erklären, woher das eigentliche Problem kommt, und dass Autocomplete = "off" es nicht lösen würde, es sei denn, es zwingt Benutzer, alle ihre Passwörter ausschließlich im Kopf zu behalten! Entwickler seinerseits können Benutzer nicht vollständig schützen,

ruruskyi
quelle
0

Angesichts des gleichen HIPAA-Problems und fand eine relativ einfache Lösung,

  1. Erstellen Sie ein verstecktes Kennwortfeld mit dem Feldnamen als Array.

    <input type="password" name="password[]" style="display:none" />
    
  2. Verwenden Sie dasselbe Array für das eigentliche Kennwortfeld.

    <input type="password" name="password[]" />
    

Der Browser (Chrome) fordert Sie möglicherweise zur Eingabe von "Kennwort speichern" auf. Unabhängig davon, ob der Benutzer "Speichern" auswählt, wird beim nächsten Anmelden des Kennworts das versteckte Kennwortfeld, der Null-Steckplatz im Array, automatisch ausgefüllt, wobei der erste Steckplatz leer bleibt.

Ich habe versucht, das Array zu definieren, z. B. "password [part2]", aber es wurde immer noch gespeichert. Ich denke, es wirft es ab, wenn es ein nicht indiziertes Array ist, weil es keine andere Wahl hat, als es an der ersten Stelle abzulegen.

Dann verwenden Sie die Programmiersprache Ihrer Wahl, um auf das Array zuzugreifen, z. B. PHP.

echo $_POST['password'][1];
Mike
quelle
1
Damit verstecken Sie ein Sicherheitsproblem - der Hash des Passworts wird immer noch im Cache des Browsers gespeichert.
Alexander Burakevych
1
Kannst du das bitte klären? Das Passwort wird per POST im Klartext gesendet. Soweit ich gelesen habe, können POST-Anfragen nicht zwischengespeichert werden. Wollen Sie damit sagen, dass es eine Alternative zur Verwendung von POST zum Senden von Daten gibt? Oder sagen Sie, dass das Kennwort im Browser gespeichert ist, weil es nicht das Kennwort, sondern den leeren Wert am Anfang des Arrays speichert? Haben Sie diese Methode getestet?
Mike
0

Da die meisten autocompleteVorschläge, einschließlich der akzeptierten Antwort, in den heutigen Webbrowsern nicht funktionieren (dh Webbrowser-Passwortmanager ignorieren autocomplete), besteht eine neuere Lösung darin, zwischen passwordund textTypen zu wechseln und die Hintergrundfarbe mit der Textfarbe im Feld abzustimmen ist ein einfaches Textfeld, das das Kennwort weiterhin verbirgt, während es ein echtes Kennwortfeld ist, wenn der Benutzer (oder ein Programm wie KeePass) ein Kennwort eingibt. Browser fordern nicht zum Speichern von Passwörtern auf, die in Klartextfeldern gespeichert sind.

Der Vorteil dieses Ansatzes besteht darin, dass eine schrittweise Verbesserung möglich ist und daher kein Javascript erforderlich ist, damit ein Feld als normales Kennwortfeld fungiert (Sie können stattdessen auch mit einem einfachen Textfeld beginnen und denselben Ansatz anwenden, dies ist jedoch nicht wirklich HIPAA PHI / PII-konform). Dieser Ansatz hängt auch nicht von versteckten Formularen / Feldern ab, die möglicherweise nicht unbedingt an den Server gesendet werden (weil sie versteckt sind), und einige dieser Tricks funktionieren auch in mehreren modernen Browsern nicht.

jQuery-Plugin:

https://github.com/cubiclesoft/php-flexforms-modules/blob/master/password-manager/jquery.stoppasswordmanager.js

Relevanter Quellcode über den obigen Link:

(function($) {
$.fn.StopPasswordManager = function() {
    return this.each(function() {
        var $this = $(this);

        $this.addClass('no-print');
        $this.attr('data-background-color', $this.css('background-color'));
        $this.css('background-color', $this.css('color'));
        $this.attr('type', 'text');
        $this.attr('autocomplete', 'off');

        $this.focus(function() {
            $this.attr('type', 'password');
            $this.css('background-color', $this.attr('data-background-color'));
        });

        $this.blur(function() {
            $this.css('background-color', $this.css('color'));
            $this.attr('type', 'text');
            $this[0].selectionStart = $this[0].selectionEnd;
        });

        $this.on('keydown', function(e) {
            if (e.keyCode == 13)
            {
                $this.css('background-color', $this.css('color'));
                $this.attr('type', 'text');
                $this[0].selectionStart = $this[0].selectionEnd;
            }
        });
    });
}
}(jQuery));

Demo:

https://barebonescms.com/demos/admin_pack/admin.php

Klicken Sie im Menü auf "Eintrag hinzufügen" und scrollen Sie zum Ende der Seite zu "Modul: Kennwort-Manager stoppen".

Haftungsausschluss: Während dieser Ansatz für sehende Personen funktioniert, kann es zu Problemen mit der Bildschirmlese-Software kommen. Beispielsweise kann ein Bildschirmleser das Kennwort des Benutzers laut vorlesen, da ein einfaches Textfeld angezeigt wird. Die Verwendung des oben genannten Plugins kann auch andere unvorhergesehene Folgen haben. Das Ändern der integrierten Webbrowser-Funktionalität sollte sparsam erfolgen, indem eine Vielzahl von Bedingungen und Randfällen getestet werden.

CubicleSoft
quelle
-1

Gibt es eine Möglichkeit für eine Website, dem Browser mitzuteilen, dass er nicht anbieten soll, sich Passwörter zu merken?

Die Website teilt dem Browser mit, dass es sich um ein Passwort handelt <input type="password">. Wenn Sie dies aus Sicht der Website tun müssen, müssen Sie dies ändern. (Natürlich empfehle ich das nicht).

Die beste Lösung wäre, den Benutzer seinen Browser so konfigurieren zu lassen, dass er sich keine Passwörter merkt.

Joseph Pecoraro
quelle
3
Wie ist es offensichtlich, dass Sie nicht empfehlen, ein Eingabefeld zu ändern? Eine Ausarbeitung von Sicherheitsproblemen wäre hilfreich.
Karl
1
@karl: Da das Eingeben des Passworts im Freien das "Schulter-Surfen" ermöglicht, wird ein Passwort ermittelt, indem auf den Bildschirm geschaut wird, während es eingegeben wird.
David Schmitt
Nicht nur menschliches Schulter-Surfen, sondern auch Spyware oder Viren können Ihren Bildschirm beobachten und sehen, was in Klartextfeldern eingegeben wurde.
Karl
6
@karl: Wenn Sie Spyware / Viren auf Ihrem Computer haben, wird Sie kein Sternchenschutz retten. Für eine installierte App ist es nicht schwieriger, die Eingabe in ein Kennwortfeld abzufangen, als für ein Nur-Text-Feld.
Markus Olsson
3
Wenn der Browser eine normale Texteingabe anstelle einer Passworteingabe sieht, wird das Passwort wahrscheinlich in der Datenbank für die automatische Vervollständigung anstelle der Passwortdatenbank gespeichert ... und dann vorgeschlagen oder sogar auf einer nicht verwandten Website automatisch ausgefüllt! Es geht dir also sogar noch schlechter als zu Beginn.
zwol
-1

Wenn Sie dem Flag für die automatische Vervollständigung nicht vertrauen möchten, können Sie mithilfe des Ereignisses onchange sicherstellen, dass der Benutzer das Feld eingibt. Der folgende Code ist ein einfaches HTML-Formular. Das ausgeblendete Formularelement password_edited wird zunächst auf 0 gesetzt. Wenn der Wert des Kennworts geändert wird, ändert das JavaScript oben (Funktion pw_edited) den Wert auf 1. Wenn die Schaltfläche gedrückt wird, wird hier der Code des Wertgebers überprüft, bevor das Formular gesendet wird . Auf diese Weise kann der Benutzer die Anmeldeseite nicht übergeben, selbst wenn der Browser Sie ignoriert und das Feld automatisch vervollständigt, ohne das Kennwortfeld einzugeben. Stellen Sie außerdem sicher, dass das Kennwortfeld leer ist, wenn der Fokus festgelegt ist. Andernfalls können Sie am Ende ein Zeichen hinzufügen und dann zurückgehen und es entfernen, um das System auszutricksen. Ich empfehle zusätzlich das Kennwort autocomplete = "off" zum Kennwort hinzuzufügen, aber dieses Beispiel zeigt, wie der Sicherungscode funktioniert.

<html>
  <head>
    <script>
      function pw_edited() {
        document.this_form.password_edited.value = 1;
      }
      function pw_blank() {
        document.this_form.password.value = "";
      }
      function submitf() {
        if(document.this_form.password_edited.value < 1) {
          alert("Please Enter Your Password!");
        }
        else {
         document.this_form.submit();
        }
      }
    </script>
  </head>
  <body>
    <form name="this_form" method="post" action="../../cgi-bin/yourscript.cgi?login">
      <div style="padding-left:25px;">
        <p>
          <label>User:</label>
          <input name="user_name" type="text" class="input" value="" size="30" maxlength="60">
        </p>
        <p>
          <label>Password:</label>
          <input name="password" type="password" class="input" size="20" value="" maxlength="50" onfocus="pw_blank();" onchange="pw_edited();">
        </p>
        <p>
          <span id="error_msg"></span>
        </p>
        <p>
          <input type="hidden" name="password_edited" value="0">
          <input name="submitform" type="button" class="button" value="Login" onclick="return submitf();">
        </p>
      </div>
    </form>
  </body>
</html>
Tom
quelle
-1

autocomplete = "off" funktioniert nicht zum Deaktivieren des Kennwortmanagers in Firefox 31 und höchstwahrscheinlich auch nicht in einigen früheren Versionen.

Überprüfen Sie die Diskussion bei Mozilla zu diesem Problem: https://bugzilla.mozilla.org/show_bug.cgi?id=956906

Wir wollten ein zweites Passwortfeld verwenden, um ein einmaliges Passwort einzugeben, das von einem Token generiert wurde. Jetzt verwenden wir eine Texteingabe anstelle einer Passworteingabe. :-(

Andreas Stankewitz
quelle
-1

Ich hatte eine ähnliche Aufgabe, das automatische Ausfüllen von Anmeldenamen und Passwörtern durch den Browser zu deaktivieren. Nach vielen Versuchen und Fehlern fand ich die folgende Lösung optimal. Fügen Sie einfach die folgenden Steuerelemente vor Ihren ursprünglichen Steuerelementen hinzu.

<input type="text" style="display:none">
<input type="text" name="OriginalLoginTextBox">

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

Dies funktioniert gut für IE11 und Chrome 44.0.2403.107

Scheich
quelle
-2

autocomplete = "off" funktioniert für die meisten modernen Browser, aber eine andere Methode, die ich erfolgreich mit Epiphany (einem WebKit-basierten Browser für GNOME) verwendet habe, besteht darin, ein zufällig generiertes Präfix im Sitzungsstatus (oder ein verstecktes Feld, das ich zufällig hatte) zu speichern eine geeignete Variable bereits im Sitzungsstatus) und ändern Sie damit den Namen der Felder. Epiphany möchte das Kennwort weiterhin speichern, aber wenn Sie zum Formular zurückkehren, werden die Felder nicht ausgefüllt.

Peter Nelson
quelle
Das ist noch schlimmer als das übliche Speichern, da der Benutzer jetzt nicht sieht, dass das Kennwort gespeichert wurde, ohne dass ein Angreifer das Kennwort aus dem Speicher extrahieren kann.
CodesInChaos
-2

Ich hatte keine Probleme mit dieser Methode:

Verwenden Sie autocomplete = "off", fügen Sie ein verstecktes Kennwortfeld und dann ein weiteres nicht verstecktes hinzu. Der Browser versucht, das versteckte automatisch zu vervollständigen, wenn er autocomplete = "off" nicht berücksichtigt.

Spechal
quelle
-2

Eine andere Lösung besteht darin, den POST in einer ausgeblendeten Form zu erstellen, in der alle Eingaben vom Typ ausgeblendet sind. Das sichtbare Formular verwendet Eingaben vom Typ "Passwort". Das letztere Formular wird niemals gesendet, sodass der Browser den Anmeldevorgang überhaupt nicht abfangen kann.

Herr der Gänsehaut
quelle