425 Too Early

Der Server riskiert nicht, eine Anfrage zu verarbeiten, die wiederholt eingespielt werden könnte.

Wann du ihn verwendest

TLS Early Data (0-RTT).

Häufige Ursachen und Lösungen

425 betrifft TLS 1.3 Early Data, auch 0-RTT genannt: Ein wiederkehrender Client darf seine Anfrage zusammen mit dem ersten Handshake-Paket senden, aber ein Angreifer kann diese Daten erneut abspielen. Erhält ein Server oder CDN in Early Data eine Anfrage mit Nebeneffekten, darf die Antwort 425 lauten, und der Client sendet die Anfrage nach Abschluss des Handshakes erneut. Proxys kennzeichnen solche Anfragen mit dem Header Early-Data: 1.

Selbst musst du dich selten darum kümmern, weil Browser automatisch erneut senden. Wichtig wird es, wenn du 0-RTT aktivierst, zum Beispiel ssl_early_data on in nginx: Leite das Flag mit proxy_set_header Early-Data $ssl_early_data weiter und lass die App 425 für POST-Anfragen oder jedes GET zurückgeben, das Zustand ändert. Kannst du das nicht garantieren, lass 0-RTT ausgeschaltet.

Client-Fehler (4xx)

4xx-Codes sind Client-Fehler: Die Anfrage selbst ist fehlerhaft, nicht autorisiert oder verweist auf etwas, das es nicht gibt. Dieselbe Anfrage erneut zu senden hilft nicht.

So sieht es aus

HTTP/1.1 425 Too Early

So sendest du ihn

Node.js / Expressres.status(425).end()
Python / Flaskreturn '', 425
nginxreturn 425;

So prüfst du ihn

curl -s -o /dev/null -w "%{http_code}\n" https://example.com/

HTTP-Statuscodes öffnen