// CSRF-Schutz (Defense-in-Depth) für schreibende Route-Handler: // Browser senden bei Cross-Site-POSTs immer einen Origin-Header – // stimmt er nicht mit dem Host überein, wird die Anfrage abgelehnt. // (Erste Verteidigungslinie sind bereits die SameSite=Lax-Session- // Cookies von @supabase/ssr sowie der JSON-Content-Type.) export function isSameOrigin(request: Request): boolean { const origin = request.headers.get("origin"); // Kein Origin-Header: kein Browser-Cross-Site-Kontext (z. B. curl); // die Authentifizierung greift trotzdem. if (!origin) return true; const host = request.headers.get("host"); try { return new URL(origin).host === host; } catch { return false; } }