„Udostępnianie zasobów krzyżowych jest znane przez akronimowe CORS. Gdy ktoś działa w innej domenie, serwer użyje tej metody do kontrolowania dostępu do swoich usług. Dzieje się to w środku serwera i przeglądarki. Za pomocą nagłówków HTTP Access-Control-Request-* przeglądarka przesyła niektóre dane. Na podstawie otrzymanych nagłówków serwer decyduje, co wysłać jako nagłówki kontroli dostępu. Przeglądarka jest teraz świadoma swojej zdolności lub niemożności dostępu do zasobów serwerów. Przeglądarka może czasami wykonać przed lotem, który jest walidacją, zanim złożył rzeczywiste żądanie. Nagłówek nie można zmienić za pomocą kodu front-end w przeglądarce. Nagłówki mogą być modyfikowane przez kod po stronie serwera. Jednak należy go wykonać przez usługę niższą, której aplikacja nie widzi, taka jak brama API lub serwer HTTP.
Pytania HTTP krzyżowe wykonane przez scenariusze są ograniczone przez przeglądarki pod kątem problemów bezpieczeństwa. Na przykład zasada tej samej pochodzenia jest przestrzegana zarówno do API Fetch, jak i xmlhttprequest. Oznacza to, że aplikacja internetowa wykorzystująca te interfejsy API może składać żądania zasobów z pochodzenia, z którego została załadowana, chyba że odpowiedź innych źródeł ma odpowiednie nagłówki CORS."
Wyzwalacze i rodzaje żądania CORS
Ponieważ zasoby są często hostowane w tym samym źródle co aplikacja internetowa, nie wszystkie żądania powodują żądanie CORS. CORS jest aktywowany, jeśli jest inaczej. Proste żądania i CORS wstępnie wyprzedzone żądania to dwie różne formy żądań CORS.
Proste żądania CORS
Gdy użytkownik inicjuje proste żądanie, ich przeglądarka internetowa przesyła żądanie do serwera. Serwer następnie analizuje źródło żądania, analizuje je do swoich reguł i podaje żądane zasoby, jeśli pasuje. Ten typ żądania wykorzystuje nagłówki pochodzenia i kontroli dostępu-control-aligin, aby zdecydować, czy zasób należy dostarczyć. Jedynymi typami żądań, które doprowadzą do prostego żądania, są zdobycie, głowa i post, a także nagłówki, takie jak akceptacja, DPR, w dół, link, zapisywanie data, treści, w języku treści, szerokość rzutni i szerokość i Szerokość. Nawet jednak nie wszystkie typy treści powodują proste żądanie. Tutaj tylko niektóre formy kodowania formularzy powodują proste żądanie.
Zmawki z wyprzedaży
Wcześniejsze żądania są nieco inne, ponieważ nie ma natychmiastowego połączenia z usługami w początkowej rundzie. Prośba wstępnie wyprzedzona jest inicjowana, gdy warunki zostaną w jakiś sposób zmieniane, na przykład, wykorzystując zmodyfikowany nagłówek żądania lub alternatywny typ treści. W żądaniach wstępnie wyprzedzonych wyszukiwarka najpierw potwierdza, że może uzyskać dostęp do zasobu, odpowiadając przeglądarce internetowej, a gdy przeglądarka internetowa odpowiada odpowiedzią Okay (HTTP 200), następnie wysyła kolejne żądanie nabycia zasobu. Po pierwsze, prosimy o użycie metody opcji HTTP, a następnie pobiera zasoby za pomocą typów żądań podobnych do metod Get i Post.
Warunek CORS w Nginx
Po pierwsze, 4xx odpowiedzi są niezgodne ze standardową dyrektywą NGINX Dodaj nagłówek. Im więcej Set Headers Dyrektywa, która również funkcjonuje z odpowiedziami 4xx, może być użyta do dodawania do nich niestandardowych nagłówków, ale aby to zrobić, musimy najpierw zainstalować moduł nagłówków Nginx.
Pakiet Nginx-Extras można łatwo zainstalować, jeśli korzystasz z dystrybucji Debiana, pomimo rekomendacji dokumentacji, aby zbudować Nginx ze źródła za pomocą modułu:
Znaczenie włączania CORS na Nginx
Wykonanie JavaScript w przeglądarce klienta zazwyczaj nie musi uzyskiwać dostępu do usług poza jej domeną. W rezultacie wyłączenie CORS może być mądrym środkiem bezpieczeństwa.
Jednak aby taka funkcjonalność funkcjonowała na zapleczu, CORS musi być włączony. Wynika to z faktu, że legalny kod JavaScript może czasami wymagać przekazania żądania do serwera poza jego domeną. Oddzielny protokół, nazwa domeny lub port może być nazywany tą samą domeną.
Jak włączyć CORS na Nginx w Ubuntu 20.04
Przejdźmy do głównej części. Otwórz preferowany edytor, VIM, a następnie przejdź do konfiguracji Nginx:
Wprowadź następny wpis w bloku serwera konfiguracji Nginx.
Po tym ponownie uruchom Nginx, a następnie zapisz plik konfiguracyjny.
CORS można włączyć za pomocą polecenia Curl do weryfikacji. Z tego następujące wyniki powinno wynikać z tego:
Jak radzić sobie z błędami CORS w severach
Strona serwera jest miejscem, w którym zaimplementuje się CORS; strona klienta nie może zmienić sposobu, w jaki to działa. Użytkownikom można uniknąć korzystania z wspólnych zasobów za pomocą zachowania CORS, często znanego jako błąd CORS. To nie jest błąd, ale raczej mechanizm bezpieczeństwa w celu ochrony ciebie lub witryny, którą odwiedzasz po potencjalnym naruszeniu bezpieczeństwa. Wdrożenie nagłówków HTTP, które są nieodpowiednie lub niepoprawne, może spowodować ten problem (e.G., brakujące klucze API i inne informacje o autoryzacji). Mamy kilka unikalnych rozwiązań tych błędów.
Wniosek
Głównym celem CORS jest zapewnienie aplikacji online bezpieczniej. CORS może być jeszcze korzystny. Ponieważ nie jest to domyślnie włączone, CORS musi być włączony w tej sytuacji. Dzięki zastosowaniu dyrektyw pochodzenia i kontroli dostępu-aligin, które są jedynymi typami żądań używanych przez podstawowy typ żądania CORS, Nginx może zapewnić zgodę przeglądarki internetowej w celu uzyskania dostępu do żądanego zasobu w oparciu o pochodzenie. CORS to świetne narzędzie, które należy dokładnie wykorzystać w obu przypadkach.