Eine Bot-Prüfung sitzt auf den Seiten, die am meisten zählen: Login, Registrierung, Checkout. Das macht sie nützlich und zugleich gefährlich. Wartet jeder Checkout auf sie, ist Ihr Checkout an dem Tag langsam, an dem sie langsam ist; an dem Tag, an dem sie ausfällt, fallen Sie mit aus.
Fail-open, fail-closed
Kann die Prüfung nicht antworten, gibt es zwei Möglichkeiten. Fail-closed blockiert den Besucher: sicher gegen Bots, fatal fürs Geschäft, weil auch jeder echte Kunde blockiert wird. Fail-open lässt den Besucher durch: Während des Ausfalls kommen Bots herein wie vor Ihrer Prüfung, und sonst merkt es niemand.
Für fast jede Website ist fail-open richtig. Ein paar Minuten ohne Bot-Schutz kosten wenig; ein paar Minuten ohne Checkout kosten viel, und das Vertrauen der Menschen, die es gesehen haben.
Vier Regeln für den Aufruf einer Bot-Prüfung
- Ein kurzer Timeout. Wählen Sie das Maximum, das Sie der Seite hinzufügen wollen, 100 bis 200 ms, und erzwingen Sie es in Ihrem Code. Verlassen Sie sich nie darauf, dass der Anbieter schnell ist.
- Jeder Fehler lässt den Besucher durch. Ein Timeout, ein Verbindungsfehler, ein 5xx, ein 402 für einen ausgeschöpften Plan oder ein Body, den Sie nicht parsen können: Alles bedeutet „keine Antwort“, und keine Antwort heißt weitermachen.
- Nur auf eine sichere Antwort hin handeln. Bei der höchsten Bot-Klasse blockieren; bei schwächeren Belegen Reibung hinzufügen, etwa einen Code per E-Mail, nie eine Mauer.
- Die Aussetzer loggen. Zählen Sie Timeouts und Fehler, damit ein Ausfall ein Graph ist und kein Rätsel.
Wie es im Code aussieht
const d = await fetch(API + "/v1/decide", {
method: "POST",
headers: { Authorization: `Bearer ${KEY}` },
body: JSON.stringify({ ip, user_agent, token, path }),
signal: AbortSignal.timeout(150),
}).then((r) => r.json()).catch(() => null);
if (d?.class === "bot_high") return res.status(403).end();
// anything else, including no answer: carry on
Das catch ist die ganze Richtlinie: Was auch schiefgeht, wird zu null, und null ist nie ein Bot.
Auch die Browserseite ist fail-open
Auch das Skript auf Ihrer Seite darf sie nie aufhalten. Erreicht es den Dienst nicht, funktioniert die Seite genau wie ohne es; die Entscheidung des Servers hat dann einfach weniger Belege.
Wie Bot Protection dafür gebaut ist
Bot Protection ist ein Aufruf von Ihrem Server, kein Proxy vor Ihrer Website, und steht daher nie im Pfad einer Anfrage, die Sie nicht prüfen wollten. Sein Tag wartet eine begrenzte Zeit und gibt dann still auf. An Ihrem Ausgabenlimit antwortet es 402, was Ihr Code wie jeden anderen Fehler behandelt: Besucher kommen durch, und Sie erhalten vorher eine E-Mail.