Kontroler CORS

Sprawdź, czy wklejona odpowiedź pozwala na konkretne nagłówki pochodzenia przeglądarki, metody i żądań.

Odpowiedź na sprawdzenie
Wklej też linię statusu podczas sprawdzania odpowiedzi przedlotowej.
Schemat, host i opcjonalny port przesyłane w nagłówku Origin.
Włącz żądania obejmujące ciasteczka lub uwierzytelnianie HTTP.
Decyzja dotycząca przeglądarki

    Rozłożone pola kontroli dostępu

    HTTP status
    Access-Control-Allow-Origin
    Access-Control-Allow-Credentials
    Access-Control-Allow-Methods
    Access-Control-Allow-Headers
    Access-Control-Expose-Headers
    Access-Control-Max-Age

    Wprowadź odpowiedź i szczegóły prośby, a następnie sprawdź politykę CORS.

    Wklej odpowiedź, aby sprawdzić jego politykę CORS.

    Twoje nagłówki i szczegóły żądania pozostają w przeglądarce. Nic nie jest przesyłane ani zapisywane przez BroBroGo.

    FAQ

    Czy powinienem wkleić faktyczną odpowiedź, czy odpowiedź przedlotową?

    Użyj Rzeczywistej odpowiedzi, aby sprawdzić, czy kod przeglądarki potrafi odczytać jedną odpowiedź. Użyj odpowiedzi przedlotowej dla OPTIONS odpowiedzi, która zatwierdza późniejszą metodę oraz jej żądane nazwy nagłówków.

    Dlaczego karta dzika może nie zaliczyć poświadczenia uwierzytelniających?

    Gdy do tego dołączane są ciasteczka lub uwierzytelnianie HTTP, dozwolone źródło musi dokładnie odpowiadać żądającemu pochodzeniu. Karty dzikie dla dozwolonych metod i nagłówków również tracą znaczenie dzikiej karty.

    Czy wynik pozytywny potwierdza, że żądanie na żywo zadziała?

    Nie. Ten wynik obejmuje jedynie wklejoną odpowiedź oraz szczegóły żądania wprowadzone tutaj. Przekierowania, buforowane odpowiedzi, zmiana reguł serwera, rozszerzenia przeglądarek oraz faktyczna odpowiedź po wstępnym testie mogą nadal wpłynąć na wynik.

    Zrozumienie mechanizmu Cross-Origin Resource Sharing (CORS)

    Cross-Origin Resource Sharing (CORS) to standard bezpieczeństwa wdrożony w przeglądarkach internetowych, który kontroluje, czy skrypty uruchamiane na stronie internetowej mogą odczytywać odpowiedzi na żądania kierowane do innej domeny niż ta, z której strona została załadowana. Bezpieczeństwo to opiera się na analizie nagłówków HTTP przesyłanych przez serwer w odpowiedzi na zapytania przeglądarki.

    Narzędzie Kontroler CORS pozwala programistom sprawdzić, czy przeglądarka internetowa zezwoli na wykonanie określonego zapytania sieciowego na podstawie dostarczonych nagłówków odpowiedzi HTTP oraz parametrów planowanego żądania. Narzędzie to analizuje wprowadzone dane lokalnie: Twoje nagłówki i szczegóły żądania pozostają w przeglądarce. Nic nie jest przesyłane ani zapisywane przez BroBroGo.

    Rola nagłówka Access-Control-Allow-Origin

    Kluczowym elementem polityki CORS jest nagłówek Access-Control-Allow-Origin. Określa on, które źródła (origins) mają prawo dostępu do zasobów serwera. Podczas weryfikacji narzędzie analizuje zgodność podanego źródła z wartością tego nagłówka.

    W zależności od konfiguracji nagłówka, narzędzie może wyświetlić następujące uzasadnienia decyzji:

    • Access-Control-Allow-Origin dokładnie pasuje do ‹origin›. – oznacza to pełną zgodność z zadeklarowanym źródłem.
    • Access-Control-Allow-Origin dopuszcza dowolne źródło tej prośby. – sytuacja, w której serwer zezwala na dostęp każdemu źródłu za pomocą wartości wieloznacznej.
    • Access-Control-Allow-Origin brakuje. – brak wymaganego nagłówka w odpowiedzi serwera, co uniemożliwia autoryzację CORS.
    • Access-Control-Allow-Origin ma wartość nieprawidłową: ‹value›. – nagłówek zawiera błędy składniowe, na przykład wiele wartości lub wartości rozdzielone przecinkami, co jest niedozwolone.
    • Access-Control-Allow-Origin jest ‹actual›, nie ‹expected›. – wartość nagłówka nie pokrywa się z oczekiwanym źródłem żądania.

    Obsługa danych uwierzytelniających i nagłówka Access-Control-Allow-Credentials

    Gdy żądanie sieciowe wymaga przesłania danych uwierzytelniających, takich jak ciasteczka (cookies) lub dane autoryzacyjne HTTP, reguły CORS stają się znacznie bardziej rygorystyczne. Włączenie opcji "Dołącz dane uwierzytelniające" aktywuje dodatkowe testy zgodności.

    Przede wszystkim, gdy dane uwierzytelniające są dołączone, nagłówek Access-Control-Allow-Origin nie może zawierać znaku wieloznacznego *. W takim przypadku narzędzie wskaże błąd: Access-Control-Allow-Origin nie może być *, gdy dane są uwzględnione..

    Dodatkowo, serwer musi jawnie zezwolić na użycie poświadczeń poprzez odesłanie nagłówka Access-Control-Allow-Credentials o wartości dokładnie równej true. Jeśli warunek ten jest spełniony, narzędzie wyświetli komunikat: Access-Control-Allow-Credentials jest dokładnie prawdą.. W przeciwnym razie decyzja zostanie zablokowana z uzasadnieniem: Wniosek o uprawnienia wymaga Access-Control-Allow-Credentials: prawda.. Jeśli żądanie nie uwzględnia poświadczeń, nagłówek ten nie wpływa na wynik, co narzędzie potwierdza komunikatem: Nie uwzględniają żadnych uprawnień, więc Access-Control-Allow-Credentials nie wpływa na tę decyzję..

    Żądania przedlotowe (Preflight) i weryfikacja metod HTTP

    W przypadku żądań, które mogą modyfikować dane na serwerze lub używają niestandardowych nagłówków, przeglądarki wysyłają najpierw zapytanie typu preflight (metodą OPTIONS). Narzędzie pozwala na analizę takich odpowiedzi po wybraniu opcji "Odpowiedź na żądanie preflight".

    Podczas analizy preflight sprawdzana jest dopuszczalność metody HTTP. Narzędzie weryfikuje nagłówek Access-Control-Allow-Methods:

    • Jeśli metoda znajduje się na liście dozwolonych, wyświetla się komunikat: Wstępne testy pozwalają na ‹method›..
    • Jeśli metoda należy do grupy bezpiecznych (CORS-safelisted), nie musi być jawnie wymieniona, co skutkuje komunikatem: ‹method› jest metodą CORS-safelist, która nie musi pojawiać się w Access-Control-Allow-Methods..
    • W przypadku braku uprawnień dla metody pojawia się komunikat: Access-Control-Allow-Methods nie pozwala na ‹method›..

    Ważnym elementem żądania preflight jest status odpowiedzi HTTP. Prawidłowa odpowiedź przedlotowa musi zwracać pomyślny kod z zakresu 2xx. Narzędzie weryfikuje ten status i wyświetla odpowiednio:

    • Status przedlotowy ‹status› przebiega pomyślnie..
    • Status przedlotowy ‹status› nie jest pomyślnym statusem 2xx..
    • Nie wklejono żadnej linii statusu HTTP, więc nie można sprawdzić wymaganego statusu 2xx preflight. (wtedy wynik końcowy to: Nagłówki przechodzą, ale status przedlotowy jest nieznany.).

    Autoryzacja nagłówków żądania i wyjątek nagłówka Authorization

    Podczas żądań przedlotowych przeglądarka pyta również o zgodę na wysłanie niestandardowych nagłówków wymienionych w Access-Control-Request-Headers. Narzędzie analizuje nagłówek Access-Control-Allow-Headers pod kątem tych wymagań.

    Jeśli żaden z nagłówków nie wymaga specjalnej zgody, narzędzie informuje: Żadne żądane nazwy nagłówków nie wymagają zatwierdzenia przed uruchomieniem.. Gdy nagłówki są dozwolone, wyświetla się komunikat: Przedlotowe pozwala na żądane nazwy nagłówków: ‹headers›..

    Zachowanie znaków wieloznacznych (*) w nagłówku Access-Control-Allow-Headers podlega dwóm kluczowym ograniczeniom:

    1. Gdy dane uwierzytelniające są dołączone, znak * traci swoje specjalne znaczenie i nie reprezentuje wszystkich nagłówków. Bez poświadczeń znak ten działa szeroko, co narzędzie opisuje jako: Access-Control-Allow-Headers: * obejmuje następujące nazwy dla żądania bez poświadczeń: ‹headers›..
    2. Nagłówek Authorization stanowi bezwzględny wyjątek. Musi być on zawsze wymieniony jawnie na liście dozwolonych nagłówków. Nawet obecność Access-Control-Allow-Headers: * nie autoryzuje go automatycznie. W takiej sytuacji narzędzie wskaże błąd: Authorization muszą być wymienione wyraźnie; Access-Control-Allow-Headers: * nie obejmuje tego..

    Ograniczenia analizy i walidacja danych wejściowych

    Narzędzie Kontroler CORS wykonuje statyczną analizę dostarczonych tekstów nagłówków i parametrów żądania. Nie wykonuje ono połączeń sieciowych, nie odpytuje serwerów, nie odczytuje adresów URL, nie zapisuje ciasteczek ani nie weryfikuje konfiguracji DNS/TLS.

    Maksymalna długość wklejanych nagłówków wynosi 200 000 znaków. Podczas wprowadzania danych mogą pojawić się następujące błędy walidacji:

    • Wklej HTTP nagłówki odpowiedzi przed sprawdzeniem. – gdy pole odpowiedzi jest puste.
    • Ta reakcja jest wyjątkowo szeroka. Trzymaj to pod ‹max› postaciami. – po przekroczeniu limitu znaków.
    • Linia ‹line› nie jest ważnym nagłówkiem HTTP ani linią statusu. – w przypadku błędów składniowych w strukturze linii.
    • Linia ‹line› zawiera nieprawidłową nazwę nagłówka HTTP. – gdy nazwa nagłówka zawiera niedozwolone znaki.
    • Wprowadź origin z jedynie schematem, hostem i opcjonalnym portem, takim jak https://app.example.com. – gdy podane źródło zawiera ścieżkę, zapytanie lub dane logowania.
    • Wprowadź ważny token HTTP metody. – przy nieprawidłowym formacie metody.
    • Przeglądarki nie pozwalają na metodę ‹method› w żądaniach pobierania. – w przypadku metod zabronionych przez specyfikację przeglądarek.
    • "‹header›" nie jest prawidłową nazwą nagłówka HTTP request. – przy błędnej nazwie nagłówka w żądaniu.

    W przypadku wystąpienia dowolnego z powyższych problemów, ogólny komunikat o błędzie brzmi: Popraw podświetlone wejście i spróbuj ponownie..

    FAQ

    Czy powinienem wkleić faktyczną odpowiedź, czy odpowiedź przedlotową?

    Użyj Rzeczywistej odpowiedzi, aby sprawdzić, czy kod przeglądarki potrafi odczytać jedną odpowiedź. Użyj odpowiedzi przedlotowej dla OPTIONS odpowiedzi, która zatwierdza późniejszą metodę oraz jej żądane nazwy nagłówków.

    Dlaczego karta dzika może nie zaliczyć poświadczenia uwierzytelniających?

    Gdy do tego dołączane są ciasteczka lub uwierzytelnianie HTTP, dozwolone źródło musi dokładnie odpowiadać żądającemu pochodzeniu. Karty dzikie dla dozwolonych metod i nagłówków również tracą znaczenie dzikiej karty.

    Czy wynik pozytywny potwierdza, że żądanie na żywo zadziała?

    Nie. Ten wynik obejmuje jedynie wklejoną odpowiedź oraz szczegóły żądania wprowadzone tutaj. Przekierowania, buforowane odpowiedzi, zmiana reguł serwera, rozszerzenia przeglądarek oraz faktyczna odpowiedź po wstępnym testie mogą nadal wpłynąć na wynik.