Alles Wissenswerte, nichts Unwissendes.
Sicher generieren und speichern
Generieren Sie serverseitig einen 4- bis 8-stelligen Code, speichern Sie lediglich einen Hash davon mit kurzer Gültigkeitsdauer (5–10 Minuten) und binden Sie diesen an den Benutzer und den Kanal. Senden Sie den Code niemals zur Überprüfung an den Client – die Überprüfung erfolgt serverseitig. Siehe /answers/what-is-otp.
Senden Sie mit einem Ausweichprotokoll
Stellen Sie die SMS über einen direkten, priorisierten Kanal zu und konfigurieren Sie einen Ausweichkanal (Flash-Anruf, WhatsApp oder Sprachanruf), damit eine verzögerte SMS den Nutzer nicht blockiert. Siehe /answers/best-channel-for-otp und /answers/sms-fallback-strategy.
Überprüfen Sie die Grenzwerte.
Überprüfen Sie die Benutzereingabe anhand des gespeicherten Hashwerts, begrenzen Sie die Versuche, bevor Sie eine erneute Zusendung erzwingen, und ungültig machen Sie die Nachricht bei Erfolg. Lassen Sie sie schnell ablaufen. Siehe /answers/sms-otp-best-practices.
Ratenbegrenzung und Überwachung
Begrenzen Sie die Anfragen pro Nummer und IP-Adresse, um SMS-Pumping zu verhindern, und achten Sie auf ungewöhnliche Adressspitzen. Erwägen Sie die Verwendung einer stillen Netzwerkauthentifizierung, um den Versand eines kostenpflichtigen Codes gänzlich zu vermeiden. Siehe /answers/what-is-sms-pumping und /answers/what-is-silent-network-auth.