2008-12-26 5 views
12

Speichern und automatisches Einreichen von Benutzername/Passwort ist eine Funktion der meisten modernen Browser. Und der Benutzer kann generell diese Funktion pro Domäne deaktivieren. Aber gibt es einen Standardweg für die Site selbst, um Passwort-Caching zu verhindern?Cross-Browser-Techniken zum Deaktivieren der Passwort-Caching

Der Schwerpunkt hier ist Cross-Browser, so würde ich bei Bedarf mehrere parallele Mechanismen verwenden.

(ich habe in Gegenwart von Nicht-Standard-Login-Feldern, zum Beispiel, ein extra versteckten Passwort-Feld effektiv deaktiviert gesehen Caching werden. Aber ich würde lieber nicht hängen von Nebenwirkungen, dessen Verhalten könnte unerwartet in denen ändern Zukunft.)

Umgekehrt, gibt es Browser/Versionen da draußen, die Passwort-Caching ohne jede Funktion deaktivieren?

+0

Was möchten Sie genau erreichen? Fordern Sie den Benutzer auf, sich an das Passwort zu erinnern, oder verhindern Sie, dass Angreifer gespeicherte Passwörter auf der Benutzerseite ernten? – PolyThinker

+1

Mine ist nicht zu begründen, meins ist aber zu implementieren und zu implementieren. (Aber wahrscheinlich der spätere.) Kunde: http://www.disa.mil/ –

+1

Sie sollten nur CAC verwenden;) – erickson

Antwort

12

Fügen Sie autocomplete="off" zu Ihren <input> Elementen hinzu. Funktioniert in allen modernen Browsern, IIRC.

+0

Ah, jetzt sehe ich etwas wie cache = off. Ich muss testen, um sicherzustellen, dass die Passwörter nicht auf die Festplatte gelangen - im Gegensatz zur automatischen Vervollständigung ... –

+2

Nur zur Info: Microsoft hat entschieden, dass Internet Explorer 11 "autocomplete =" off nicht mehr berücksichtigt "' für "input type =" password "' Felder. http://msdn.microsoft.com/en-us/library/ie/ms533486%28v=vs.85%29.aspx –

0

Geben Sie der Kennworteingabe einen zufällig generierten Namen, den nur Sie erkennen können. Speichern Sie diesen Namen beispielsweise in einem ausgeblendeten Feld und verwenden Sie diesen, um das eingegebene Passwort zu erhalten. Auch wenn der Browser das Passwort zwischenspeichert, kann es beim nächsten Besuch des Benutzers nicht wiederhergestellt werden.

Ihre Benutzer werden wahrscheinlich an dieser Stelle fortfahren, die Passwörter auf einem Postit auf der Seite des Monitors zu cachen, aber das ist wirklich eine ganz andere Schlacht.

Die gleiche Methode funktioniert gut gegen Spam, da die meisten Bots darauf angewiesen sind, gemeinsame Feldnamen zu finden.

+0

Intriguing. Der Browser speichert jedoch weiterhin Passwörter auf der Festplatte des Benutzers, was für uns eine Sicherheitsverletzung darstellt. (Und, oh, ich stimme dir mit der Postit-Theorie zu.) –

+0

was für ein lächerlicher Vorschlag –

1

Ich würde mir vorstellen, dass Browser die Felder eines Formulars speichern, wenn das Formular übergeben wird. Was ist, wenn Sie AJAX verwenden, um den Wert des Passwortfeldes zu erhalten, senden Sie es und löschen Sie das Feld? Das Formular würde niemals wirklich eingereicht werden, so dass der Browser theoretisch nie die Möglichkeit hätte, die Werte zu speichern.

+1

Wer getan Tests auf diese Antwort? Ich mag die Theorie einfach nur wissen wollen, ob es wahr ist. – gnarf

0

AFAIK, maskierte Felder (solche, die '*' anstelle des eingegebenen Symbols anzeigen) werden nie für die automatische Vervollständigung gespeichert. Möchten Sie verhindern, dass sich der Benutzer das Kennwort für Ihre Website in den Passwortschutzfunktionen des Browsers merkt?

+0

Korrigieren Sie das Speichern in der Funktion zum Speichern von Kennwörtern. –

0

Fügen Sie einfach ein weiteres Passwortfeld zwischen dem Benutzernamen und dem Passwort ein und legen Sie den Stil so fest, dass keiner angezeigt wird.

<!-- Username label and text here> ... <--!> 
<input type="password" id='txtPasswordDud' style='display: none;' /> 
<!-- Actual Password label and text here> ... <--!>