KFZ-Bozo Handbuch

Daten, Datenschutz & Sicherheit › Cron-Endpunkte (API-Gruppe, siehe Automationen)

Cron-Endpunkte (API-Gruppe, siehe Automationen)

API-GruppeLive✓ Geprüft am Sat Sep 05 2026 02:00:00 GMT+0200 (Mitteleuropäische Sommerzeit)

Automatisierte Hintergrund-Läufe (19 Stück) müssen sich mit einem geheimen, mindestens 32 Zeichen langen Passwort ausweisen — fehlt das Passwort auf dem Server, verweigern ALLE diese Läufe automatisch die Arbeit, statt versehentlich offen zu laufen.

System

Bild folgt

Alle 19 zeitgesteuerten Läufe (Mahnvorschläge, Tagesabschluss, vault-sweep" tabindex="0">Vault-Sweep und die übrigen Automationen) hängen an derselben, gemeinsamen Prüfung: Der aufrufende OS-Cron auf dem Server schickt ein geheimes, mindestens 32 Zeichen langes Passwort mit, entweder als Bearer-Kopfzeile oder als Legacy-Parameter in der Adresse. Die Prüfung vergleicht das Passwort zeitkonstant, damit kein Zeitunterschied Rückschlüsse auf die richtige Antwort erlaubt. Ein paar Endpunkte lassen zusätzlich eine angemeldete Büro-Sitzung als Ersatz für den manuellen Testlauf zu — der reguläre Cron-Aufruf selbst braucht immer das gemeinsame Geheimnis. Fehlt das Geheimnis auf dem Server komplett, verweigern alle 19 Läufe von sich aus die Arbeit, statt versehentlich ganz ohne Prüfung durchzulaufen.

  • Ein Cron-Lauf meldet dauerhaft Fehler → das gemeinsame Geheimnis fehlt oder ist auf dem Server zu kurz geraten; ohne es verweigern alle 19 Läufe bewusst die Arbeit.
  • Ein manueller Testaufruf mit dem Geheimnis in der Adresse schlägt fehl, obwohl das Passwort stimmt → einige Endpunkte akzeptieren die Adress-Variante bewusst nicht, nur die Kopfzeile.
  • app/api/cron
  • lib/cron-auth.ts
  • docs/DEPLOYMENT.md
  • docs/hetzner-migration-runbook.md
aufruferCron (OS-Crontab auf Hetzner)
routen19
authlib/cron-auth.ts — verifyCronAuth()/verifyCronAuthOrCookie() — Bearer CRON_SECRET (min. 32 Zeichen) oder ?key=, timing-safe Vergleich, fail-closed bei fehlendem Secret
mechanismusverifyCronAuth()/verifyCronAuthOrCookie() — Bearer-Header oder Legacy ?key=, zeitkonstanter Vergleich, Mindestlaenge 32

Beleg: docs/hetzner-migration-runbook.md:461-464 — externer Cron-Trigger mit CRON_SECRET; docs/DEPLOYMENT.md:112-143 — /etc/cron.d Beispiele

Daten, Datenschutz & SicherheitSeite bearbeiten: wiki/seiten/daten-recht-sicherheit/sec-cron-auth.md