2017-03-15 5 views
-1

Ich habe ein System bestehend aus einer PHP API mit Codeigniter und REST_Controller.Codeigniter - Formular zum Zurücksetzen des Passworts

Wenn ein Benutzer das Zurücksetzen seines Kennworts anfordert, generiert das System eine Zufallszahl und bettet sie in einen URI ein, der per E-Mail an den Benutzer gesendet wird.

Wenn der Benutzer darauf klickt, ruft er eine Funktion in REST_Controller/Codeigniter auf, die die eingebettete Zahl liest und feststellt, ob sie gültig ist. Wenn ja, erhält der Benutzer eine Website mit einem Formular, um das Passwort zu ändern.

Jetzt für die Hauptfrage. Wenn der Benutzer auf die Schaltfläche Senden klickt, um das neue Kennwort zu senden, muss die Clientseite eine andere Funktion in REST_Controller/Codeigniter aufrufen? Wenn ja, wie kann ich authentifizieren, dass die Submit-Anfrage mit Daten vom Benutzer stammt und keine zufällige Anfrage aus dem Internet?

Was fehlt mir hier?

+0

Durch die Verwendung der Sitzung, weil Benutzer zurückgesetzt werden müssen Login sein. –

+0

Hatten jemals Honeypots Felder? –

+0

ich denke, dass Sie die generierte "Zufallszahl" validieren müssen, um zu überprüfen, dass es die gleiche ist, die Sie generiert und in E-Mail gesendet haben –

Antwort

0

habe ich nur die folgende Vorgehensweise:

  1. Der Benutzer klickt auf einen Link mit einem Token in der URI eingebettet, die eine GET-Anforderung an eine Funktion PasswordRecovery1 macht, die auf dem Server ausgeführt wird, die die überprüft Zeichen.

  2. Wenn das Token gültig ist, wird auf dem Clientcomputer ein Cookie mit der Benutzer-ID und dem gleichen Token gesetzt, das an den Clientcomputer zurückgesendet wird.

  3. Dann wird dem Benutzer eine Webseite präsentiert, die aus einem Passwort-Eingabefeld und einer Submit-Schaltfläche besteht.

  4. Nachdem ein neues Kennwort angegeben wurde, klickt der Benutzer auf Übergeben, wodurch eine POST-Anforderung an PasswordRecovery2 ausgeführt wird, die das neue Kennwort einnimmt und das Cookie dann vom Clientcomputer liest.

  5. Die PasswordRecovery2-Funktion prüft, ob das aus dem Cookie gelesene Token gültig ist. Wenn ja, ändert es das Passwort.

Ich hoffe, dass das eine richtige Art und Weise ist, dies zu tun.

Verwandte Themen