
Osobisty notatnik
Tu są luźne notatki z wiedzy e-Commerce i dev. Czytaj i czerp wiedzę.
CORS, czyli Cross-Origin Resource Sharing (udostępnianie zasobów między źródłami), to mechanizm bezpieczeństwa przeglądarek internetowych, który pozwala lub ogranicza, jak zasoby na stronie internetowej mogą być żądane z innego domeny niż ta, z której pochodzi sama strona. Jest to część szerszej polityki bezpieczeństwa znanej jako Same-Origin Policy (Polityka tego samego pochodzenia), która ma na celu zapobieganie różnym atakom, takim jak cross-site scripting (XSS) i inne.
Dlaczego CORS jest ważny?
Bezpieczeństwo: CORS pozwala administratorom serwerów kontrolować, kto może uzyskiwać dostęp do ich zasobów. Bez tego mechanizmu, złośliwe skrypty mogłyby bez ograniczeń żądać danych z różnych źródeł, potencjalnie prowadząc do wycieku danych.
Kontrola dostępu: Dzięki CORS, serwery mogą określić, które domeny mają dostęp do ich zasobów. Na przykład, serwis API może zezwolić tylko wybranym domenom na żądanie swoich danych, a blokować inne.
Jak działa CORS?
Kiedy przeglądarka wykonuje żądanie do zasobu z innej domeny (cross-origin request), przeglądarka dodaje nagłówek Origin do żądania HTTP, wskazując domenę, z której pochodzi żądanie. Serwer docelowy może wtedy zdecydować, czy odpowiedzieć na to żądanie, w oparciu o jego własną politykę CORS. Jeśli serwer zdecyduje się odpowiedzieć, dołącza nagłówki CORS w odpowiedzi, określające, które domeny mogą otrzymać odpowiedź, jakie metody HTTP są dozwolone, czy cookies mogą być wysyłane razem z żądaniem i inne.
Przykładowe nagłówki CORS:
Access-Control-Allow-Origin: Określa, które domeny mogą uzyskać dostęp do zasobów.
Access-Control-Allow-Methods: Wymienia metody HTTP, które mogą być używane podczas żądania zasobów.
Access-Control-Allow-Headers: Wymienia nagłówki, które mogą być używane podczas żądania.
Access-Control-Allow-Credentials: Określa, czy żądania z uwierzytelnieniem (np. cookies, dane autoryzacyjne) są dozwolone.
Wyzwania związane z CORS:
Często podczas rozwoju aplikacji internetowych deweloperzy napotykają błędy związane z CORS, kiedy próbują żądać zasobów z innego serwera, domeny lub portu. W takich przypadkach odpowiednie konfiguracje po stronie serwera, które obsługuje zasoby, są niezbędne, aby umożliwić lub ograniczyć dostęp zgodnie z wymaganiami.
