Leitfaden für Entwickler

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
otp-konfiguration

Sechs Regeln um einen Code

Startwerte und was oft vergessen wird

  1. Ablaufzeit 5 bis 10 Minuten Code

    Gesetzt Lang genug für einen App-Wechsel, kurz genug, dass ein gestohlener Code verfällt.

  2. Versuche 3 bis 5 pro Code Code

    Fehlt oft Ohne Grenze lässt sich ein sechsstelliger Code erraten.

  3. Einmalig Nach Erfolg ungültig Code

    Gesetzt Ein benutzter Code darf kein zweites Mal funktionieren.

  4. Rate Limits Pro IP, Nummer, Land Anfragen

    Fehlt oft Stoppt Raten, Massenanfragen und SMS-Pumping.

  5. Sitzungsbindung Code gehört zu einer Anfrage Browser

    Fehlt oft Ein Code aus einem Tab darf keinen anderen bestätigen.

  6. Prüfung im Backend Nie dem Browser vertrauen Backend

    Fehlt oft Ein „verified: true“ aus dem Browser ist in Sekunden gefälscht.

Was ist Sendity?

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.

So funktioniert’s

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.

  1. Kurzlebig und einmalig

    Jeder Code gilt fünf Minuten, gehört zu einer Browsersitzung und endet mit der ersten erfolgreichen Nachricht.

  2. Signiertes Ergebnis

    Ihr Backend erhält ein signiertes Token und prüft Signatur, Ablauf und Empfänger. Jedes Token funktioniert nur einmal.

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

Im Vergleich

Eigener SMS-OTP oder Reverse OTP?

Welche Regeln Sie selbst bauen müssen.

AspectEigener SMS-OTPMit 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
Vorteile

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.

FAQ

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.

Verifizierung mit eingebauten Regeln.

Probieren Sie die Live-Demo auf Ihrem Handy aus, in zehn Sekunden sind Sie durch.

Ihr Sendity-Konto

Verifizieren Sie Ihre Telefonnummer oder E-Mail-Adresse mit einer Nachricht, um sich anzumelden.

Schon einen Passkey angelegt?