Terminplaner: oeffentliche Schnittstelle v1 mit Missbrauchsschutz
Router /api/public/termine/v1 (config, tage, zeiten, buchungen, widerruf, Token-Seiten /termin/*, Kalender-Abo) mit eigenem 16-KB-Parser und Fehlermiddleware, CORS nach Herkunft, Honeypot und Formular-Token, Grenzen je IP (IPv6 je /64), siteKey und Adresse in limits.js, Mindestantwortzeit (TERMINE_MIN_ANTWORT_MS) und 10-Sekunden-Cache fuer tage/zeiten. Vor dem globalen express.json eingehaengt; /api/public/ ist vom Kundenansicht-Waechter ausgenommen. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
43ac05aa06
commit
2b0c05b8e9
10 files changed
+1928
-7
No files matched your search
@@ -20,8 +20,9 @@ export const KUNDENANSICHT_ALLOWED = [
|
||||
['POST', /^\/api\/auth\/login\/?$/],
|
||||
]
|
||||
|
||||
// Eigene Pruefung (Ticketsystem-JWT) oder Ablauf/Wechsel selbst behandelt (me, Einloesen)
|
||||
const PASS_PREFIXES = ['/api/team/', '/api/admin/']
|
||||
// Eigene Pruefung (Ticketsystem-JWT) oder Ablauf/Wechsel selbst behandelt (me, Einloesen); oeffentliche Schnittstellen
|
||||
// (/api/public/: Pinnwand, Terminplaner fuer Gaeste) kennen keine Sitzung und ignorieren ein Kundenansicht-Cookie im Browser
|
||||
const PASS_PREFIXES = ['/api/team/', '/api/admin/', '/api/public/']
|
||||
const PASS_EXACT = ['/api/auth/me', '/api/auth/kundenansicht']
|
||||
const READ_METHODS = ['GET', 'HEAD', 'OPTIONS']
|
||||
|
||||
|
||||
Reference in new issue
Block a user