Die Alternative, mehreren Benutzern den gleichen Benutzernamen zu erlauben, ist weitaus schlimmer!
Was wirklich mit diesem System passiert
- Benutzer fordert ein neues Passwort an
- Sie müssen jetzt Kennwörter überprüfen, um sicherzustellen, dass keine Kollisionen auftreten.
- Der Benutzer kann dies verwenden, um andere Konten brutal zu erzwingen.
Das ist schlecht. Sie müssen also verhindern, dass mehrere Benutzer denselben Benutzernamen haben. Überprüfen Sie dazu Folgendes:
Was passiert, wenn ein Benutzer den Benutzernamen eines anderen Benutzers herausfinden kann?
Dies ist das Szenario, mit dem Sie konfrontiert werden, und wie verhindern Sie dies? jemand, der es böswillig benutzt. Welchem Risiko öffnen Sie sich hier?
- Ein Benutzer kann einen Benutzernamen herausfinden.
- Er gewährt immer noch keinen Zugriff, da er jetzt das Passwort erraten muss
Okay, gut, dies bietet etwas mehr Sicherheit und verhindert, dass Benutzer E-Mails und andere vertrauliche Informationen verlieren. Aber jetzt möchten Sie versuchen, Angriffe abzuschwächen. Wie machen Sie das?
Abschwächen von Registrierungsangriffen
Es gibt hier einige Techniken, um dies zu verhindern, aber das mit Abstand beste ist die Ratenbegrenzung und die maximalen Versuche, die Sie protokollieren nach IP.
Ratenbegrenzung, maximale Versuche und IP-Protokollierung
Wenn ein Benutzer versucht, sich zu registrieren, kann er nur so schnell nach verfügbaren Benutzernamen suchen. In Wirklichkeit braucht eine reale Person ein oder zwei Sekunden, um einen neuen Benutzernamen einzugeben. Auf diese Weise können Sie einige einfache Checks and Balances durchführen. Dies geschieht jedoch nur dann wirklich, wenn sie versuchen, sich zu registrieren. Wenn ein Benutzer Sie angreift und einen nicht registrierten Benutzernamen verwendet, ist alles, was passiert, dass er diesen Benutzernamen registriert hat. Naja. Jetzt müssen sie den Registrierungsprozess erneut starten, und hier können Sie dies überprüfen.
- Der Benutzer versucht sehr schnell, viele Konten zu registrieren: einen Bot, stoppen Sie sie und werfen Sie sie raus (Ratenbegrenzung)
- Benutzer versucht eine Menge: Von Hand angreifen, rausschmeißen (maximale Versuche)
- Benutzer kommt zurück: Dieselbe IP-Adresse zeigt einen wirklich entschlossenen Angreifer. VERBOTEN SIE IHRE IP (maximal wiederholte Versuche)
Jetzt hat sich der Angreifer bloßgestellt und wurde auf IP-Ebene gesperrt. Sie wissen, dass hier etwas Schlimmes los ist, haben ein Protokoll mit Benutzernamen, die möglicherweise glänzten, und am besten, es gab noch keinen Verlust an persönlichen Informationen. Großartige Arbeit!
Jetzt müssen Sie jedoch zurückgehen und alle Konten abmelden, die erstellt wurden, um andere Konten zu finden. Gut, dass Sie diese Protokolle haben!
Die Nachteile von Benutzernamen ohne E-Mails
Hier ist ein großer Fehler, den Sie beachten müssen, wenn Sie kein Konto binden an eine E-Mail: Der Benutzername kann vorregistriert und als Lösegeld gehalten werden . Es ist dann äußerst schwierig, den Besitz des Benutzernamens nachzuweisen. Auf diese Weise kann jemand eine andere Art von Angriff auf Ihr System ausführen, bei dem er lediglich versucht, viele Konten von Personen vorab zu registrieren und sie als Lösegeld zu halten. Hoffentlich haben Sie ein Protokoll der oben genannten Überprüfungen, damit Sie versuchen können, sie auf frischer Tat zu ertappen.
Alternativen
Sie haben erwähnt, dass sie den E-Mail-Bestätigungsprozess bereits durchlaufen haben Eine andere Möglichkeit, dies zu diesem Zeitpunkt zu tun, besteht darin, es stattdessen mit der E-Mail zu verknüpfen. Wenn sie nach der Registrierung ihre E-Mail-Adresse ändern möchten, müssen sie sich anmelden und eine Anfrage mit einem Link zu ihrer E-Mail-Adresse senden, um sie zu ändern. Dies kann mit einem zeitkritischen Token erfolgen. Jetzt können sie auch einen Benutzernamen haben, der auf der Site angezeigt wird. Die Fallstricke werden auch hier gemindert, da sich der Anzeigename überschneiden kann und es keine Möglichkeit gibt, mit diesen Informationen auf ein anderes Konto zuzugreifen. Die E-Mail bietet jedoch eine Überprüfung der Wahrheit (und möglicherweise eine physische Kennung wie ein Profilbild).