Verifizierung absichern: Ablaufzeit, Versuche, Rate Limits.
Ein Verifizierungscode ist nur so stark wie die Regeln drumherum. Ohne Grenze für Versuche lässt sich ein sechsstelliger Code erraten, ohne Rate Limits pumpen Bots SMS, ohne Prüfung im Backend fälscht ein einziger geänderter Wert im Browser das Ergebnis. Dieser Leitfaden zeigt die Einstellungen, mit denen Sie eine Verifizierung absichern, mit Werten, von denen Sie ausgehen können.
- Ablaufzeit und Versuche
- Rate Limits gegen Pumping
- Warum die Prüfung ins Backend gehört
Sechs Regeln um einen Code
Startwerte und was oft vergessen wird
-
Ablaufzeit 5 bis 10 Minuten Code
Gesetzt Lang genug für einen App-Wechsel, kurz genug, dass ein gestohlener Code verfällt.
-
Versuche 3 bis 5 pro Code Code
Fehlt oft Ohne Grenze lässt sich ein sechsstelliger Code erraten.
-
Einmalig Nach Erfolg ungültig Code
Gesetzt Ein benutzter Code darf kein zweites Mal funktionieren.
-
Rate Limits Pro IP, Nummer, Land Anfragen
Fehlt oft Stoppt Raten, Massenanfragen und SMS-Pumping.
-
Sitzungsbindung Code gehört zu einer Anfrage Browser
Fehlt oft Ein Code aus einem Tab darf keinen anderen bestätigen.
-
Prüfung im Backend Nie dem Browser vertrauen Backend
Fehlt oft Ein „verified: true“ aus dem Browser ist in Sekunden gefälscht.
Anmelden per Nachricht. Ohne Formular, ohne Code.
Sendity ist ein Anmelde-Widget für Ihre Website. Statt ein Formular auszufüllen, schicken Ihre Besucher eine kurze Nachricht per WhatsApp oder E-Mail. Sendity prüft, von wem sie stammt, und übergibt Ihrer Seite den Namen und die verifizierte Telefonnummer oder E-Mail-Adresse.
So funktioniert Sendity →-
Eine Nachricht statt Formular Besucher tippen in WhatsApp oder ihrem E-Mail-Programm auf „Senden“. Nichts abtippen, keine Bestätigungsmail anklicken.
-
Verifiziert durch die Nachricht selbst Der Kontakt stammt vom Absender der Nachricht. Tippfehler und erfundene Adressen landen gar nicht erst in Ihrer Liste.
-
Bezahlt wird pro verifiziertem Kontakt Sie starten mit 1.000 Credits geschenkt, ohne Kreditkarte. Danach Prepaid-Pakete, ohne Abo.
Jede Regel schließt einen Weg. Zusammen machen sie einen kurzen Code sicher genug.
Ablaufzeit
Das US-Standardinstitut NIST erlaubt für Codes über das Telefonnetz höchstens zehn Minuten Gültigkeit. Für die meisten Anmeldungen reichen fünf Minuten, auch mit einem Wechsel in die Nachrichten-App.
Versuche
Ein sechsstelliger Code hat eine Million Kombinationen. Mit drei bis fünf Versuchen pro Code und danach einem neuen Code ist Raten aussichtslos. Zählen Sie Fehlversuche auch pro Nummer, nicht nur pro Code.
Rate Limits
Begrenzen Sie Anfragen pro IP-Adresse, pro Nummer oder Adresse und pro Land. Ein Land, das Sie nie bedienen und das plötzlich Hunderte Anfragen schickt, ist das klassische Zeichen für SMS-Pumping.
Bindung und Einmaligkeit
Ein Code gehört zu genau einer Anfrage in genau einer Browsersitzung und wird mit dem Erfolg ungültig. Vergleichen Sie Codes in konstanter Zeit, damit Antwortzeiten nichts verraten.
Die Prüfung im Backend
Der Browser steht unter der Kontrolle des Nutzers. Ihr Server muss das Ergebnis selbst prüfen: ein signiertes Token mit Ablauf, Empfänger und einmaliger ID, nie ein Merker, den JavaScript schickt.
Wie Sendity diese Regeln setzt.
Beim Reverse OTP tippt der Besucher keinen Code, auf Ihrer Seite gibt es also nichts zu raten. Die übrigen Regeln sind eingebaut.
Kurzlebig und einmalig
Jeder Code gilt fünf Minuten, gehört zu einer Browsersitzung und endet mit der ersten erfolgreichen Nachricht.
Signiertes Ergebnis
Ihr Backend erhält ein signiertes Token und prüft Signatur, Ablauf und Empfänger. Jedes Token funktioniert nur einmal.
Ihre Limits obendrauf
Tragen Sie pro Kampagne unter „Allowed Origins“ die Domains ein, auf denen Ihr Widget läuft. Regeln wie ein Eintrag pro Nummer gehören in Ihre Anwendung.
Eigener SMS-OTP oder Reverse OTP?
Welche Regeln Sie selbst bauen müssen.
| Aspect | Eigener SMS-OTP | Mit Sendity |
|---|---|---|
| Code erraten | Braucht eine Versuchsgrenze | Auf Ihrer Seite wird nichts getippt |
| SMS-Pumping | Braucht Limits pro Nummer und Land | Nichts zu pumpen: Sie verschicken nichts |
| Ablauf und Einmaligkeit | Setzen Sie selbst um | Eingebaut |
| Ergebnis fürs Backend | Eigene Prüfung | Signiertes Token, einmal nutzbar |
Drei Fehler, die immer wieder vorkommen.
Lohnt sich in jeder bestehenden Umsetzung zu prüfen.
Zu viel verraten
„Kein Konto mit dieser Nummer“ verrät Angreifern, welche Nummern registriert sind. Antworten Sie in beiden Fällen gleich.
Unbegrenztes erneutes Senden
Jedes erneute Senden kostet Geld und setzt nichts zurück. Warten Sie 30 bis 60 Sekunden und deckeln Sie die Zahl pro Stunde.
Prüfung im Browser
Alles, was in JavaScript entschieden wird, lässt sich in den Entwicklerwerkzeugen ändern.
In wenigen Minuten auf Ihrer Seite.
Sendity läuft als kompaktes Widget auf Ihrer Seite. Wählen Sie den Weg, der zu Ihrer Website passt.
Verifizierung absichern: häufige Fragen.
Wie lang sollte ein Code sein?
Sechs Ziffern sind Standard und reichen mit einer Versuchsgrenze. Längere Codes helfen wenig und werden öfter falsch abgetippt.
Kann ich die Ablaufzeit bei Sendity ändern?
Im gehosteten Dienst gelten Codes fünf Minuten. Hosten Sie Sendity selbst, legen Sie den Wert in der Serverkonfiguration fest.
Wozu dienen die Allowed Origins?
Sie sorgen dafür, dass nur Ihre Seiten Verifizierungen für Ihre Kampagne starten, obwohl der öffentliche Schlüssel im Seitenquelltext steht. Nutzen Sie für Test- und Live-Seiten eigene Kampagnen.
Brauche ich dann noch ein CAPTCHA?
Bei SMS-Codes hilft es gegen Pumping. Beim Reverse OTP bräuchte ein Bot ein echtes Handy oder Postfach zum Senden, ein CAPTCHA lohnt den Aufwand dann selten.
Weiterlesen.
Fachlich geprüft im von Christian Schätzlein.
Verifizierung mit eingebauten Regeln.
Probieren Sie die Live-Demo auf Ihrem Handy aus, in zehn Sekunden sind Sie durch.