Frage

Ich frage mich, was die beste Methode ist, ein Passwort vergisst Funktion auf einer Website zu schaffen. Ich habe ganz gesehen, ein paar gibt, sind hier ein paar oder eine Kombination von:

  • Passwort Frage / Antwort (1 oder mehr)
  • Bitte senden Sie E-Mail mit neuem Passwort
  • auf dem Bildschirm gibt neues Passwort
  • Bestätigung per E-Mail: muss Link klicken neues Passwort zu erhalten
  • Seite benötigen Benutzer ein neues Kennwort eingeben

Welche Kombination oder zusätzliche Schritte würden Sie ein Passwort vergessen Funktion hinzufügen? Ich frage mich, wie sie das neue Passwort anfordern und wie sie am Ende bekommt es.

Ich bin Betrieb auf dem Prinzip, dass das Passwort kann nicht abgerufen werden; ein neues Passwort muss angegeben / erzeugt werden.

Bearbeiten Ich mag, was Cory sagte über nicht angezeigt, wenn der Benutzername vorhanden ist, aber ich frage mich, was stattdessen anzuzeigen. Ich denke, die Hälfte Problem ist, dass der Benutzer vergessen haben, welche E-Mail-Adresse, die sie verwendet, die eine Art von Anzeige „existiert nicht“ Nachricht nützlich ist. Jede Lösung?

War es hilfreich?

Lösung

  1. Ich persönlich würde eine E-Mail mit einem Link zu einer kurzfristigen Seite senden, die sie setzen ein neues Passwort läßt. Machen Sie den Namen der Seite eine Art von UID.
  2. Wenn das Ihnen nicht zusagt, dann sie ein neues Passwort zu senden und zu zwingen, es auf den ersten Zugang zu ändern, wie gut tun würde.

Option 1 ist viel einfacher.

Andere Tipps

Einige wichtige Sicherheitsbedenken:

  • Eine Passphrase Frage / Antwort tatsächlich senkt Sicherheit, da es in der Regel das schwächste Glied in dem Prozess wird. Es ist oft einfacher, jemand die Antwort zu erraten, als es ein Passwort -. Insbesondere, wenn Fragen nicht sorgfältig gewählt
  • Unter der Annahme von E-Mails als Benutzername in Ihrem System betreiben (die in der Regel für eine Vielzahl von Gründen empfohlen wird), sollte die Antwort auf eine Passwort-Reset-Anfrage nicht angeben, ob ein gültiges Konto gefunden wurde. Es sollte einfach sagen, dass eine Passwortabfrage E-Mail wurde an die angegebene Adresse gesendet wurde. Warum? Eine Antwort, die anzeigt, dass eine E-Mail nicht / nicht erlaubt nicht existiert ein Hacker eine Liste von Benutzerkonten ernten von mehreren Passwort-Anfragen einreichen (in der Regel über einen HTTP-Proxy wie rülpsen suite) und stellt fest, ob die E-Mail zu finden ist. Um von Login Ernte schützen Sie kein Login versichern müssen / Auth ähnliche Funktionen bieten einen Hinweis auf, wenn eine gültige Benutzer-E-Mail auf einem Login eingegeben wurde / pass Form zurückgesetzt.

Für mehr Hintergrund, Check-out des Web Application Hackers Handbook . Es ist eine ausgezeichnete Lese auf die Schaffung von sicheren Authentifizierungsmodelle.

Bearbeiten : In Bezug auf die Frage im Bearbeiten - Ich würde vorschlagen:

  

"Eine Passwortanfrage E-Mail wurde   an die Adresse gesendet Sie zur Verfügung gestellt. Wenn   Eine E-Mail nicht ankommt kurz,   Bitte überprüfen Sie Ihren Spam-Ordner. wenn nein   E-Mail eintrifft, dann kein Konto vorhanden ist   mit der E-Mail Sie zur Verfügung gestellt. "

Es gibt einen Kompromiss zwischen Benutzerfreundlichkeit und Sicherheit hier gemacht. Sie haben dies auf Kontexts balancieren - ist Sicherheit wichtig genug, um Sie und Ihre Benutzer diese Unannehmlichkeit zu rechtfertigen?

E-Mail sendet mit neuem Passwort.

eine Kennwortänderung erzwingen, wenn sie ankommen und Schlüssel in dem neuen Passwort ein.

Damit wird sichergestellt, dass die Person, die das Passwort wollte wird das nur nur in das Konto zu bekommen.

Wenn die E-Mail-geschnupft wird, jemand auf das Konto (natürlich) bekommen könnte, aber die wirkliche Partei entdeckt diese sofort (wie ihr Passwort, das Sie gerade geschickt sie nicht funktioniert).

Auch Bestätigungen von Kennwortänderungen an den Benutzer senden.

Wenn jemand das neue Passwort bekommen, und dann eine E-Mail sagen: „Danke für das Kennwort zu ändern“, sie gehen eher verwirrt sein, und werden zu einem Admin sprechen, wenn sie es nicht tun.

Mit dem E-Mail-Überprüfung / Passwort-Reset-Link erhalten Sie bessere Sicherheit. Wenn man sich so aussehen, wie die meisten Websites es tun und Menschen zu dieser Prüfung ist ziemlich verwendet werden, so würde ich empfehlen, diese Art der Authentifizierung verwendet wird.

Ich würde denken (gbrandt des) Option 2 wäre eine große Methode sein, wenn es mit einigen persönlichen Daten kombiniert wird bereits für den Benutzer hat. d.h Geburtsdatum.

Wenn der Benutzer ein neues Passwort anfordert (Reset) über seine E-Mail-Adresse eingeben, er hat auch ein korrektes Geburtsdatum (oder etwas anderes) einzugeben, bevor das Passwort zurückgesetzt und ein neues Geschäft ist an den Benutzer per E-Mail.

Nur diejenigen, die ihn gut kennen, können ihn möglicherweise verärgern durch sein Passwort zurückzusetzen! Es kann nicht ein Fremder oder ein Bot sein

Nach 5 oder 7 schlechte E-Mail-Adresse und das Geburtsdatum Kombinationen der Nutzer per E-Mail, dass sein Passwort zurückgesetzt werden angefordert wurde und aufgrund einer falschen Anmeldeinformationen fehlgeschlagen. Dann Passwort Rücksetzen für dieses Konto wird für 24 Stunden suspendiert oder jeden gewünschten Zeitraum.

(wenn zu viele Benutzer kontaktieren Sie den WebAdmin in Bezug auf diese E-Mail, er wird wissen, dass jemand versucht, böswillig Informationen erhalten von Ihrer Website / app)

Was denkt ihr?

Option 1. ist nicht eine gute Idee, wie allgemein sein wird leicht von anderen zu erraten. Sarah Palins persönliche E-Mail (Yahoo glaube ich) wurde auf diese Weise von einem Dritten gehackt.

Die anderen Optionen sind besser und bisherigen Beiträge haben das Detail beschrieben.

Die Idee, die ich darüber nachdachte, war es, die Daten in der Verbindung zu unterzeichnen, die an den Benutzer gesendet wird. Dann, wenn der Benutzer auf den Link klickt und der Server empfängt den Anruf, der Server wird auch den verschlüsselten Teil und bestätigen kann, dass die Daten unberührt waren.

Ich habe ein Java-Projekt für diesen Anwendungsfall realisiert. Es ist auf GitHub, Open Source. Es beantwortet Ihre Frage perfekt ... in Java implementiert.

Wie für den Link in der E-Mail -. Es erzeugt den Link, und validiert es bei Verwendung

Es gibt Erklärung für alles (und wenn etwas fehlt - lassen Sie mich wissen ...)

Haben Sie einen Blick: https://github.com/OhadR/Authentication-Flows

Sehen Sie eine Demo hier .

Dies ist die Client-Web-Anwendung, die den Auth-Flows, mit der Readme mit allen Erklärungen verwendet. er leitet Sie die Implementierung: https://github.com/OhadR/ OAuth2-sample / Baum / Master / Authentifizierungs-Strom

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top