Heim >Backend-Entwicklung >PHP-Tutorial >javascript – Einige Websites verwenden js, um das Passwort im Passwortfeld irreversibel zu verschlüsseln, wenn der Benutzer die Anmeldung übermittelt, und sendet es dann. Ist das notwendig? Was sind die Vor- und Nachteile?
Der Prozess dieser Websites ist ungefähr so:
Wenn sich der Benutzer registriert:
Benutzer gibt Passwort ein
Der Benutzer klickt auf „Senden“
Verschlüsseln Sie das Passwort im Frontend vor der Übermittlung
Verschlüsseln Sie das Passwort, bevor Sie es in der Datenbank speichern
Wenn sich der Benutzer anmeldet:
Benutzer gibt Passwort ein
Der Benutzer klickt auf „Senden“
Verschlüsseln Sie das Passwort im Frontend vor der Übermittlung
Passwort an den Server übertragen und erneut verschlüsseln
Vergleichen Sie die Passwörter in der Datenbank
Ich denke, das verhindert nur, dass Personen mit Hintergedanken an Ihr Klartext-Passwort gelangen, aber sie können den abgefangenen Chiffriertext trotzdem verwenden, um eine Anmeldeanfrage zu erstellen, ohne das Klartext-Passwort zu kennen
Es gibt jedoch immer noch einige Websites (http-Websites), die dies tun. Ist dies also notwendig? Was sind die Vor- und Nachteile?
Natürlich kann dies https nicht ersetzen
Der Prozess dieser Websites ist ungefähr so:
Wenn sich der Benutzer registriert:
Benutzer gibt Passwort ein
Der Benutzer klickt auf „Senden“
Verschlüsseln Sie das Passwort im Frontend vor der Übermittlung
Verschlüsseln Sie das Passwort, bevor Sie es in der Datenbank speichern
Wenn sich der Benutzer anmeldet:
Benutzer gibt Passwort ein
Der Benutzer klickt auf „Senden“
Verschlüsseln Sie das Passwort im Frontend vor der Übermittlung
Passwort an den Server übertragen und erneut verschlüsseln
Vergleichen Sie die Passwörter in der Datenbank
Ich denke, das verhindert nur, dass Personen mit Hintergedanken an Ihr Klartext-Passwort gelangen, aber sie können den abgefangenen Chiffriertext trotzdem verwenden, um eine Anmeldeanfrage zu erstellen, ohne das Klartext-Passwort zu kennen
Es gibt jedoch immer noch einige Websites (http-Websites), die dies tun. Ist dies also notwendig? Was sind die Vor- und Nachteile?
Natürlich kann dies https nicht ersetzen
Als ich früher die Identitätsauthentifizierung durchführte, dachte ich über die Front-End-Verschlüsselung nach, aber ich dachte, sie sei nutzlos und von geringem Nutzen.
Für den Server sind die Front-End-verschlüsselten Daten das Passwort des Benutzers Sobald das Paket erfasst wurde, kann der Hacker die Front-End-verschlüsselten Daten erhalten und sich getarnt anmelden
Wenn Sie hohe Sicherheitsanforderungen haben, können Sie weiterhin https verwenden, obwohl es auch angegriffen werden kann.
Wenn die gesamte Site https ist, lösen alle http-Ressourcen Alarme aus, da HTTPS eine Verschlüsselung des gesamten Prozesses erfordert, auch für ein Bild.
Durch die Front-End-Verschlüsselung kann sichergestellt werden, dass das Passwort der Chiffretext der Übertragung während des Übertragungsprozesses ist. Mit anderen Worten: Niemand außer dem Passwortbesitzer weiß, was das Passwort ist, nicht einmal die Person, die das Programm entwickelt hat.
Auf diese Weise kann jemand, der Ihr http-Paket abfängt, es nicht entschlüsseln (außer beim Brute-Force-Cracking)
Der einzige Vorteil besteht darin, dass das Entfernen Ihrer Datenbank keine Auswirkungen auf das Passwort des Benutzers auf anderen Websites hat (allgemein bekannt als Credential Stuffing).
Andere sind nutzlos, indem Sie den Angriff einfach wiederholen. Nach der Anmeldung muss ich beispielsweise bei einem Man-in-the-Middle-Angriff das Passwort des Benutzers nicht kennen, sondern nur die Anfrage erneut senden Chiffretext. Ich kann auch die Benutzeranmeldung fälschen.
Die https-Website ist auch verschlüsselt, das ist der einzige Vorteil, den ich gesagt habe.
Das ist, als würde man die Hose ausziehen und für den Benutzer sorgen Sicherheit. Wenn der Front-End-Verschlüsselungsalgorithmus umkehrbar ist, stimme ich zu. Kennen Sie den Chiffretext, indem Sie die js-Verschlüsselungsmethode wiederherstellen