Zum Inhalt springen

User Registration, How-To


Empfohlene Beiträge

Hallo Community,

ich habe dieses mal eine konzeptionelle Frage. Ihr kennt das ja wenn ihr euch im Internet regestriert. In den meisten Fällen müsst, ihr dann eure Emails abrufen und dort auf einen Link klicken der irgendwie so aussehen könnte:

http://www.test.com/users/activate/Te3Di!_32djaljecOE05

Der letzte Teil, ist der eigentlich entscheidende Teil. Ich hab jetzt 2 Ansätze im Blick. Der eine, ich leg eine zusätzliche Spalte in der DB an, z.B. 'verifyKey' und schreibt dort den Wert rein und gleich bei Abrufe eifnach ab.

Den zweiten Ansatz, eine 2-Wege Verschlüsselung. Hab mir gerad eine zusammen gebastelt, die 2 Strings zusammenverwurschtelt und später wieder encodiert werden kann. Bsp:

Zvnaks§bZ!hgfrgfrge.zpnbazaq%14,13

Array

(

[0] => Max Mustermann

[1] => info@test.com

)

So Problem beim ersten Ansatz : Ich hab in der DB einen Wert steh den ich genau 1 mal brauch, danach ist der unbrauchbar. Nicht gerade sauber.

Bei den zweiten Ansatz hab ich ein anderen Kritikpunkt. Je länger die 2 Strings sind, desto länger wird der Aktivierungskey. Auch nicht gerade optimal.

Wollt jetzt mal Anfragen, ob ihr schon mal eine ähnliches Problem hattet und wie ihr es gelöst habt.

Mit freundlichen Grüßen

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

hm.. ein Aktivierungskey ist ein Wegwerfgegenstand. Warum nicht bei der Registrierung ein Flatfile anlegen, das den Namen des völlig zufällig erzeugten (aber eindeutigen) Schlüssels hat? (Der auch in Form eines Links per E-Mail verschickt wird)

Regelmäßiges Housekeeping stellt sicher, dass eine Maximalanzahl von Aktivierungskeys existiert (andernfalls wird vorübergehend keine weitere Aktivierung zugelassen) und dass erzeugte Keys nach sagen wir 24 Stunden gelöscht werden. Das File enthält die E-Mail-Adresse als Inhalt oder eine sonstige User-ID, damit klar ist, wer hier aktiviert werden soll.

Nach der Aktivierung wird das File gelöscht.

Das hält zwar möglicherweise keinem ausdauernden Angriff stand, d.h. nach genug Rumprobiererei wird es sicher möglich sein, den ein oder anderen User zufällig zu aktivieren, das aber nicht gezielt. Ich halte es für eine pragmatische Lösung, die in den allermeisten Fällen ausreichend sein sollte.

Sollte man mehr Sicherheit wünschen und die Probiererei ausschließen wollen, könnte man noch eine Flood-Control einbauen bzw. einfach dafür sorgen, dass nur ein gewisser Schwellenwert von Anfragen pro IP zugelassen wird, danach die IP für ein paar Minuten gebanned wird (und natürlich bei jedem weiteren Versuch innerhalb der Zeitspanne wieder). Dabei aber nicht vergessen, dass auch mal zwei User mit der gleichen IP aus dem gleichen Hausnetz zugreifen können.

Fazit: Es ist IMHO nicht erforderlich, hierfür ein Datenbankfeld anzulegen und es ist auch nicht erforderlich, endlos lange oder kryptische Aktivierungskeys zu verwenden. (Hab zwar gerade keinen Namen im Kopf, aber es gibt ja auch diverse Tools für das erzeugen von leicht zu merkenden Passwörtern, welche ich dafür evtl. heranziehen würde).

Viele Grüße,

riot

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Du könntest

1. eine weitere Tabelle mit User-ID + Hash anlegen und somit Deine Userdaten sauber halten

2. Den Hash mit zu den Benutzerdaten speichern. Den könnte man bei Bedarf später noch verwenden (Allerdings fällt mir gerade kein Bsp. ein).

Die Benutzerdaten durch die Gegend zu schicken (selbst Kodiert), ist keine gute Idee.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...