Zapraszam do dzisiejszej, technicznej porcji wiedzy. Tematem, który dziś postanowiłem podjąć, jest CORS, czyli Cross-Origin Resource Sharing. Jest to zagadnienie, które stanowi kluczowy element bezpieczeństwa sieciowego, szczególnie w kontekście aplikacji internetowych.
CORS, czyli Cross-Origin Resource Sharing, to mechanizm, który pozwala na bezpieczne wykonywania żądań pomiędzy tymi samymi lub różnymi domenami. Czy kiedykolwiek zastanawialiście się, jak to jest możliwe, że skrypt JavaScript z jednej strony internetowej może bezpiecznie komunikować się z inną stroną, nawet jeśli pochodzą z różnych domen, protokołów lub portów? Odpowiedzią na to pytanie jest właśnie CORS!
CORS
Zabezpieczenia przeglądarki uniemożliwiają stronie internetowej wykonywanie żądań do innej domeny niż ta, która obsłużyła stronę internetową. To ograniczenie jest nazywane zasadami tego samego źródła. Zasady tego samego źródła uniemożliwiają złośliwej witrynie odczytywanie poufnych danych z innej witryny. Czasami możesz zezwolić innym witrynom na wykonywanie żądań między źródłami w aplikacji. – microsoft
W Internecie istnieje coś, co nazywamy Same-Origin Policy, która ma na celu ochronę użytkowników przed potencjalnie złośliwymi skryptami. Zasada ta mówi, że skrypt na stronie A nie może uzyskać dostępu do danych na stronie B, chyba że obie strony pochodzą z tego samego źródła (tzn. mają tę samą domenę, protokół i port).

Jednak CORS jest mechanizmem, który pozwala na „elastyczność” w stosunku do tej zasady. Dzięki niemu, serwer może wysłać odpowiednią odpowiedź HTTP z nagłówkiem Access-Control-Allow-Origin
, informując przeglądarkę, że jest to bezpieczne źródło i że skrypt z innej domeny może uzyskać dostęp do jej zasobów. Na przykład, nagłówek Access-Control-Allow-Origin: *
powie przeglądarce, że zasoby są dostępne dla wszystkich domen.
Zasady CORS są bardzo ważne dla bezpieczeństwa sieciowego. Pozwalają one twórcom stron internetowych na kontrolowanie, jak ich zasoby są udostępniane innym stronom. Jednocześnie umożliwiają one twórcom aplikacji webowych na korzystanie z zasobów z innych domen w bezpieczny sposób.
Warto zauważyć, że CORS jest tylko jednym z mechanizmów zabezpieczających sieć. Istnieje wiele innych, takich jak Content Security Policy (CSP), które zapewniają bezpieczeństwo użytkowników w sieci. Zrozumienie, jak działa CORS i jak go prawidłowo używać, jest kluczowe dla każdego twórcy stron internetowych.
Warto jednak nadmienić, że mechanizm CORS jest tylko mechanizmem zaimplementowanym i stosowanym w przeglądarkach internetowych. Jeżeli będziemy chcieli pobrać zasoby z zdalnego serwera poprzez terminal z użyciem np. cURL, wtedy mechanizm ten nie zadziała.
Jeżeli chcesz dowiedzieć się więcej na ten temat, te linki powinny pomóc: