Page 1 of 1

Fehlerhaftes OTP-System während der OTP-Überprüfung

Posted: 05 Jan 2025, 07:34
by Guest
Ich erstelle eine App, bei der Benutzer ihre E-Mail-Adresse bestätigen müssen, sobald sie registriert sind. Dies erfolgt über ein OTP, das gesendet wird, sobald der Benutzer die Registrierungs-API aufgerufen hat. Wenn das OTP gültig ist, bestätigen wir die Registrierung, andernfalls entfernen wir den Benutzer.
Wenn ich einen Benutzer registriere, erstelle ich auch ein OTP-Objekt, das ich mit dem Benutzer verknüpfe.
Zum Beispiel

Code: Select all

class Otp{
.
.
.
private User user;

// setter and getter
.
.
}
Hier ist also ein Szenario. Nehmen wir an, ein Benutzer A hat sich registriert, sich aber noch nicht verifiziert. Jetzt greift eine andere Person auf die Verifizierungs-API zu und sendet zufällig das gleiche OTP, das Benutzer A erhalten hat, und Benutzer A wird registriert. Jetzt ist die Wahrscheinlichkeit, dass dies geschieht, sehr gering, da meine OTP-Länge 7-8 Zeichen lang sein wird, aber nicht null.
Ich sehe darin eine Sicherheitslücke. Sind alle OTP-Systeme so fehlerhaft oder mache ich etwas falsch? Wenn ja, kann jemand ein gutes Design für ein OTP-System vorschlagen?