Registrierungsaktivierung

Guten Morgen bzw. moin moin,
bin gerade dabei meine Applikation zu überarbeiten. Ich habe hier mal speziell ein paar Fragen bezüglich dem Registrierungsverfahren.
Momentan läuft meine Registrierung wie folgt ab:

1. Der Nutzer gibt seine Daten ein
2. Nach erfolgreicher Registrierung, wird eine Email mit einem entsprechenden Aktivierungslink an die angegebene Adresse gesendet.
3. Der Aktivierungslink beinhaltet eine 25 stellige AlphaNum die via php unique( sha1 usw...) gebildet wird und dem Account zugeordnet wird.
4. Nach Ausführung des Links wird nur die ID zzgl. die UserId gegen die Datenbank geprüft und der Account freigeschaltet.

Ich denke das ganze ist ein wenig lausig und Stiefmütterlich von mir umgesetzt, wenn nicht sogar arg grausig.

Mich würde hier mal interessieren wie man das ganze RICHTIG umsetzen kann und sollte.
1. Wie sollte die ID generiert und abgelegt werden?
2. Nach Betätigung des Links muss man was, wie und gegen was prüfen?
3. was sollte in der Datenbank alles hinterlegt sein um die Aktivierung durchzuführen und abzuschließen?
4. Wie sollte der Link aussehen und aufgebaut sein den der Nutzer zugesendet bekommt und ausführt?
5. Gibt es für die Validierung der $_GET Parameter eventuelle Besonderheiten auf die man Achten muss, oder sollte?

So, ich denke das reicht für das erste an Fragen...

Dann wünsche ich noch einen schönen sonnigen Sonntag

greetz

ByteSurfer
 
Zuletzt bearbeitet:
1. Wie sollte die ID generiert und abgelegt werden?
Auf jeden fall zufällig. Es darf nicht möglich sein mit Kenntnis des Benutzernamens und/oder der Mailadresse die ID zu errechnen.

2. Nach Betätigung des Links muss man was, wie und gegen was prüfen?
Man sollte den Benutzer ihmo nicht automatisch einloggen. Die Mail könnte auch von dritten gelesen werden. Also nach dem aktivieren normaler Login mit Passwort.

3. was sollte in der Datenbank alles hinterlegt sein um die Aktivierung durchzuführen und abzuschließen?
Id oder Hash der Id und die Information ob ein Benutzer schon aktiviert ist. Was man vermeiden sollte: du sperrst (deaktivierst) einen Benutzer manuell und er kann sich wieder aktivieren indem er den Link nochmal aufruft.

4. Wie sollte der Link aussehen und aufgebaut sein den der Nutzer zugesendet bekommt und ausführt?
Am besten einfach als Parameter ?activate=
Für Suchmaschinen hat das eh keine Relevanz also muss man da auch nix optimieren.

5. Gibt es für die Validierung der $_GET Parameter eventuelle Besonderheiten auf die man Achten muss, oder sollte?
Nein nur das übliche. Parameter vorher immer escapen, mit der zu der Datenbank gehörigen Funktion.

Ich hoffe das hilft dir etwas weiter. So wie du das umgesetzt hast, scheint das schon ganz vernünftig zu sein.
 
Puh...

ich dachte schon ich bekomme hier keine Antwort mehr.

Ich hoffe das hilft dir etwas weiter. So wie du das umgesetzt hast, scheint das schon ganz vernünftig zu sein.

Jup, das hilft mir sehr gut.

Ich denke dann optimiere ich noch ein bischen und lasse dann die Registrierung so wie Sie ist.

Danke nochmal... :)
 
Man sollte den Benutzer ihmo nicht automatisch einloggen. Die Mail könnte auch von dritten gelesen werden.
Man kann ihn automatisch einloggen, wenn sowohl die Registrierung als auch die Aktivierung in der gleichen Session stattfinden (und damit in einem relativ kurzen Zeitfenster).
 
Zurück
Oben