2016-05-17 20 views
-1

Ich erstelle eine Website für ein Unternehmen, mit dem ich arbeite. Es beinhaltet die Benutzerauthentifizierung. Die Datenbank speichert die Hash-Passwörter. Kennwortverschlüsselung vor dem Senden des Formulars

Zu einem bestimmten Zeitpunkt auf einer bestimmten Seite sollte sich der Benutzer über ein Popup anmelden können. Dies erfordert eine asynchrone Anfrage an eine PHP-Datei, die die Datenbank mit dem Passwort anfordert.

Was mich zu meiner Frage führt: soll ich verwenden Javascript um das Passwort hash, bevor es in meiner asynchronen Anforderung gesendet wird, um zu verhindern, zum Beispiel, Man-in-the-Middle-Angriffe oder Dinge wie das? Ich weiß nicht, ob die Website HTTPS noch verwenden wird.

Danke.

+7

Wenn Sie ein Hash-Passwort senden und der Man-in-the-Middle das abfängt ... Nun, raten Sie mal, sie müssten einfach das gleiche Hash-Passwort an den Server senden, um Ihre Anfrage nachzuahmen. ** Wenn Sie ein Hash-Passwort senden, dann ist das Hash-Passwort _is_ Ihr Passwort. ** Sie erhalten nichts. – deceze

+2

Ohne HTTPS haben Sie keine Sicherheit. Auch +1 für @deceze. Sicherheit ist schwer. Sei vorsichtig oder du wirst verbrannt. – Wainage

+0

Das ist keine schlechte Frage, man kann eine Menge Tutorials finden, die clientseitig Hashing empfehlen, also kann ich die downvotes nicht verstehen. – martinstoeckli

Antwort

2

Client-Seite Hashing kann nie Serverseite Hashing ersetzen. Ein Mann in der Mitte kann nicht nur das "verschlüsselte" Passwort direkt als neues Passwort verwenden, er kann auch das JavaScript entfernen, das das Passwort verschlüsselt. Schlimmer noch, er konnte eine Kopie des echten Passworts an einen anderen Server senden, sodass Sie die Änderung nicht einmal erkennen würden.

Die einzige Option für eine Website ist die Verwendung einer verschlüsselten HTTPS/SSL-Verbindung. Dort können Sie das Passwort Klartext senden, SSL sorgt für sicheren Transport.

+0

Sehr hilfreich, danke! –

2

Das Senden von Hash-Passwörtern wird niemanden daran hindern, an Ihrer Verbindung zu schnüffeln. Die HTTP-Anfrage enthält den Hash-Pass, der deutlich lesbar ist, da die Anfrage selbst nicht verschlüsselt ist.

Wenn Sie von dieser Art von Sachen sicher sein, verwenden Sie HTTPS

Verwandte Themen