CORS (Cross-Origin Resource Sharing)
Wprowadzenie
CORS (Cross-Origin Resource Sharing) to mechanizm bezpieczeństwa przeglądarek internetowych, który pozwala serwerom kontrolować, czy zasoby (API, czcionki, obrazy itp.) mogą być udostępniane stronom z innych domen.
Same-Origin Policy (SOP)
Przeglądarki domyślnie blokują żądania cross-origin ze względu na bezpieczeństwo (Same-Origin Policy). CORS jest sposobem na kontrolowane zdjęcie tego ograniczenia przez serwer.
Jak działa CORS?
- Przeglądarka wysyła żądanie preflight (metoda OPTIONS )
- Serwer odpowiada nagłówkami Access-Control-*
- Jeśli serwer zezwoli – przeglądarka wykonuje właściwe żądanie (GET, POST, PUT…)
Najważniejsze nagłówki CORS
- Access-Control-Allow-Origin – np. https://example.com lub *
- Access-Control-Allow-Methods – GET, POST, PUT, DELETE…
- Access-Control-Allow-Headers – Content-Type, Authorization itp.
- Access-Control-Allow-Credentials – true (do cookies i autoryzacji)
- Access-Control-Max-Age – jak długo cachować wynik preflight
Typowe błędy CORS
- Access-Control-Allow-Origin missing / not matching
- Żądanie z credentials: 'include' + Access-Control-Allow-Origin: *
- Brak odpowiedzi na preflight (OPTIONS)
Jak skonfigurować CORS?
Przykłady konfiguracji:
- Express.js / Node.js
- NestJS, Next.js API Routes, Vercel, AWS API Gateway, Nginx itp.
Best Practices (2026)
- Nigdy nie używaj Access-Control-Allow-Origin: * razem z credentials: 'include'
- Precyzyjnie określ dozwolone originy (najlepiej z listy)
- Używaj Access-Control-Allow-Credentials: true tylko gdy jest naprawdę potrzebne
- Konfiguruj CORS na poziomie reverse proxy (Nginx, Cloudflare) gdy to możliwe
Aktualny stan (2026)
CORS pozostaje podstawowym mechanizmem bezpieczeństwa przeglądarek. Coraz częściej stosuje się też Credentialless CORS oraz integrację z Content Security Policy (CSP) i Trusted Types.
Powiązane pojęcia
Dodano: 17 maja 2026
office@freenetmedia.pl