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.comlub*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-Originmissing / 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 zcredentials: 'include' - Precyzyjnie określ dozwolone originy (najlepiej z listy)
- Używaj
Access-Control-Allow-Credentials: truetylko 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
Same-Origin Policy • Access-Control-Allow-Origin • Preflight Request • JSONP • WebSocket • Content Security Policy (CSP) • Fetch API
Dodano: 17 maja 2026