CORS er en browserbaseret sikkerhedsmekanisme, der styrer, hvilke cross-origin HTTP-forespørgsler der er tilladt fra JavaScript. Som standard blokerer same-origin policy scripts på evil.com fra at læse svar fra dinbank.dk. En server tillader betroede origins ved at returnere Access-Control-Allow-Origin og relaterede headers i sine svar.
Hvorfor det er vigtigt
En forkert konfigureret CORS-policy er en hyppig årsag til reelle sikkerhedsincidenter. Kombinationen af Access-Control-Allow-Origin: * med Access-Control-Allow-Credentials: true eksponerer autentificerede API'er for enhver origin, hvilket kan lække sessionsdata eller muliggøre account takeover. At reflektere request Origin-headeren uden en allowlist er lige så farligt. Omvendt bryder alt for streng CORS tavst frontends, embedded widgets og partnerintegrationer — og fejlene vises kun i browserens konsol, aldrig på serveren. CORS interagerer med CSRF-forsvar, så forkert konfiguration kan også underminere cookie-baserede beskyttelser.
Sådan konfigurerer du det
- Vedligehold en eksplicit allowlist af betroede origins; reflektér aldrig
Originblindt. - Brug kun
*til genuint offentlige, uautentificerede endpoints — og aldrig sammen med credentials. - Forstå simple vs. preflighted requests:
PUT,DELETE, custom headers eller non-standardContent-Typeudløser enOPTIONSpreflight. - Cache preflights med
Access-Control-Max-Agefor at reducere latency. - Variér svaret på
Origin-headeren, så caches ikke serverer den forkerte allowlist-entry. - Kombinér med CSP, HSTS og en korrekt Referrer-Policy for defence in depth, og håndhæv HTTPS overalt.