Wird ein Kennwortfeld in einem Formular erneut ausgefüllt, um ein Sicherheitsproblem darzustellen?

8

Ich frage mich, ob ich das (maskierte) Passwortfeld in einem Formular erneut ausfüllen sollte, wenn andere Felder nicht validieren. Ich habe beide im Internet gesehen, wo das Formular entweder:

  1. füllt das maskierte Passwortfeld
  2. erneut auf
  3. Leeren Sie das Passwortfeld, damit der Benutzer es erneut eingeben muss (obwohl es gültig war)

Was ist Ihre beste Praxis? Beweist das erneute Ausfüllen des Passwortfeldes eine Sicherheitslücke? Usability-weise würde ich es vorziehen, das Feld erneut zu füllen und den Benutzer nicht erneut eingeben zu lassen.

    
Frank 23.01.2011, 15:33
quelle

6 Antworten

8

Eine Option, wenn Sie dies tun möchten, ist nicht das Senden des Passworts im Klartext, sondern ein zufälliges Token. Da es sich um ein Passwortfeld handelt, kann der Benutzer (außer für die Länge) nichts sagen. Speichern Sie dann das Hash-Kennwort und das Token in der Sitzung. Wenn der Benutzer das Formular abschickt, wenn das Passwortfeld mit dem gespeicherten Token identisch ist, verwenden Sie den gespeicherten Passwort-Hash. Ansonsten verwenden Sie das gesendete Passwort. Dies löst die Cache-Probleme (Da das zufällige Token in Anfragen von anderen Sitzungen keine Bedeutung hat). Auf diese Weise müssen Sie das rohe Passwort nach der ersten Formularübermittlung niemals speichern oder übertragen ...

    
ircmaxell 23.01.2011, 15:44
quelle
2

Das erneute Befüllen ist für den Benutzer viel bequemer.

Wenn das Formular jedoch auf die klassische Art und Weise gesendet wird (d. h. mit einem vollständigen Neuladen der Seite, nicht über AJAX), riskieren Sie das HTML, das das zwischengespeicherte Passwort enthält. Mit richtigen Headern können Sie dieses Risiko jedoch verringern / entfernen. Die Verwendung von HTTPs ist auch in diesem Fall sehr wichtig. Es verhindert vollständig, dass HTTP-Proxies es zwischenspeichern, und der Cache des lokalen Browsers berücksichtigt normalerweise nocache-Header (und selbst wenn nicht, ist es kein großes Problem, wenn das Caching auf dem lokalen Rechner stattfindet).

Insgesamt möchte ich das Passwort normalerweise nicht mehr eingeben, nur weil ein anderes Feld (z. B. ein beschissenes Captcha) falsch war. In einer Hochsicherheitsumgebung möchten Sie das Passwortfeld jedoch nicht erneut ausfüllen es sei denn, Sie verwenden AJAX und müssen das eingegebene Passwort nicht wirklich zurücksenden.

    
ThiefMaster 23.01.2011 15:36
quelle
0

Löschen Sie Ihre Passwortfelder unbedingt und füllen Sie sie nicht erneut auf. Kompromisslose Sicherheit für die Benutzerfreundlichkeit.

    
Pradeep 23.01.2011 15:37
quelle
0

Es ist ein Sicherheitsproblem auf gemeinsam genutzten Computern, da das Passwort bei der Anzeige der HTML-Quelle in Klartext angezeigt wird. Nicht nur in einem aktiven Browserfenster, sondern auch in jedem diskbasierten Cache.

Ich würde persönlich mit OpenID gehen, anstatt zu verlangen, dass der Benutzer noch einen Benutzernamen und ein Passwort-Paar erfindet (was sich auch auf die Benutzerfreundlichkeit auswirkt).

    
sisve 23.01.2011 15:37
quelle
0

Wenn Sie das tatsächliche Passwort (oder etwas daraus abgeleitetes) vom Server an den Client senden müssen, um es erneut zu füllen, ist dies ein großes Sicherheitsloch.

Wenn Sie das Passwort nur lokal auf dem Client speichern, bis das Formular validiert ist (indem Sie die Seite nicht neu laden, zB über Javascript), dann scheint es mir in Ordnung.

    
sinelaw 23.01.2011 15:37
quelle
0

Nein, es wird nicht (wenn richtig gemacht).

  • Ein Angreifer im Netzwerk (d. h. zwischen Browser und Server) hat das vom Client gesendete Kennwort gesehen. Wenn Sie HTTPS verwenden, müssen Sie für das Formular und das Ziel verwenden.
  • Ein browserseitiger Angreifer könnte einen Listener im Passwortfeld registriert oder die Anfrage abgefangen haben.
  • Ein Drittanbieter-Angreifer könnte versuchen, die ausgefüllte Seite von einem Proxy abzurufen, den der Benutzer verwendet. Setzen Sie die entsprechenden Header Cache-Control , um zu verhindern, dass die Seite zwischengespeichert wird.
phihag 23.01.2011 15:40
quelle

Tags und Links