Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

User Registration, How-To

Empfohlene Antworten

Veröffentlicht

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

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

  • 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.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.