Sprawdzarka CORS

Sprawdź konfigurację Cross-Origin Resource Sharing (CORS) dla dowolnego adresu URL. Przeanalizuj nagłówki odpowiedzi Access-Control-*, wykonaj opcjonalne żądanie preflight (OPTIONS) z niestandardowym Origin/metodą/nagłówkami i wykryj typowe błędne konfiguracje, takie jak wildcard + credentials, brakujące Vary: Origin lub zbyt szerokie allow-headers.

Loading…

O nas Tester CORS

Wklej adres URL API lub strony i zweryfikuj, czy przeglądarki pozwolą na żądania cross-origin. To narzędzie analizuje nagłówki odpowiedzi CORS, może przeprowadzić realistyczne sprawdzenie preflight (OPTIONS) i podświetla ryzykowne lub błędne konfiguracje (jak "*" z credentials, brakujące Vary: Origin lub słabe allow-methods/allow-headers).

Funkcje

  • Inspekcja nagłówków CORS dla dowolnego publicznego adresu URL (Access-Control-* i powiązane nagłówki).
  • Opcjonalna symulacja preflight (OPTIONS) z niestandardowym Origin, metodą żądania i nagłówkami żądania.
  • Obsługa przekierowań (do 10), abyś mógł zweryfikować końcowy endpoint, do którego faktycznie trafiają przeglądarki.
  • Widok surowych nagłówków dla pełnej przejrzystości i debugowania.
  • Wnioski + karta wyników z filtrowaniem "tylko problemy" dla szybkiej analizy.
  • Analiza Vary do wykrywania brakującego Vary: Origin i innych pułapek CORS związanych z pamięcią podręczną.
  • Eksport wyników jako raporty JSON i PDF do audytów, zgłoszeń i dokumentacji.
  • Wbudowane rekomendacje dla typowych problemów: wildcard+credentials, odzwierciedlanie Origin, null Origin, brakujące allow-methods/allow-headers, brakujące max-age i zbyt szerokie allow-headers.

🧭 Jak używać for cors-checker

1

Wprowadź docelowy adres URL

Wklej endpoint, który chcesz przetestować (np. https://api.example.com/resource).

2

Ustaw Origin, z którego testujesz

Wprowadź Origin Twojej aplikacji frontendowej (schemat + host), np. https://app.example.com. To wartość, którą przeglądarki wysyłają w nagłówku Origin.

3

Wybierz tryb sprawdzania

Użyj Auto (zalecane), aby przeanalizować zarówno nagłówki odpowiedzi, jak i zachowanie preflight. Użyj Simple request, jeśli chcesz konkretnie scenariusz bez preflight, lub Preflight only, aby uruchomić sprawdzenia OPTIONS.

4

Skonfiguruj szczegóły preflight (jeśli dotyczy)

Włącz "Uruchom Preflight (OPTIONS)" i ustaw Request Method oraz Request Headers (oddzielone przecinkami), aby zasymulować rzeczywiste zachowanie preflight w przeglądarce (np. authorization, content-type). Przełącz "Uwzględnij credentials", jeśli Twój przypadek użycia obejmuje ciasteczka lub nagłówki autoryzacji.

5

Przejrzyj wnioski i eksportuj

Sprawdź wnioski/kartę wyników i szczegóły analizy CORS. Włącz "Pokaż surowe nagłówki" podczas debugowania. Eksportuj JSON/PDF do udostępniania lub przechowywania w audytach.

Specyfikacje techniczne

Model żądania

Narzędzie analizuje nagłówki CORS dla docelowego adresu URL i może opcjonalnie wykonać żądanie preflight (OPTIONS) przy użyciu dostarczonego Origin, metody i żądanych nagłówków. Obsługiwane jest przekierowywanie.

UstawienieZachowanieDomyślne
Tryb sprawdzaniaAutomatyczny, Proste żądanie lub Tylko PreflightAutomatyczny
Uruchom Preflight (OPTIONS)Jeśli włączone, wykonuje symulację preflight OPTIONSWłączone
OriginWartość nagłówka Origin używana do analizy/preflighthttps://example.com
Metoda żądaniaWartość Access-Control-Request-Method dla preflightGET
Nagłówki żądaniaAccess-Control-Request-Headers (rozdzielone przecinkami) dla preflightPuste
Obsługa przekierowańPodąża za łańcuchem przekierowań do końcowego URLWłączone
Maks. przekierowańLimit przekierowań zapobiegający pętlom10 (zakres 0–20)
Limit czasuLimit czasu żądania15000 ms
User-AgentIdentyfikuje agenta użytkownika żądaniaEncode64Bot/1.0 (+https://encode64.com)
Sieci prywatneBlokuje dostęp do zakresów sieci prywatnych dla bezpieczeństwaWyłączone (sieci prywatne niedozwolone)

Analizowane nagłówki (podstawowy zestaw CORS)

Analizator skupia się na standardowych nagłówkach odpowiedzi i żądania CORS używanych przez przeglądarki i sprawdzenia preflight.

NagłówekPrzeznaczenie
Access-Control-Allow-OriginKtóre Origin(y) są dozwolone
Access-Control-Allow-CredentialsCzy ciasteczka/dane uwierzytelniające są dozwolone (wymaga origin bez wildcard)
Access-Control-Allow-MethodsMetody dozwolone dla żądań cross-origin (ważne dla preflight)
Access-Control-Allow-HeadersDozwolone nagłówki (ważne dla Authorization i nagłówków niestandardowych)
Access-Control-Expose-HeadersKtóre nagłówki są czytelne dla JS w przeglądarce
Access-Control-Max-AgeJak długo preflight może być przechowywane w pamięci podręcznej przeglądarki
VaryZmienność klucza pamięci podręcznej (np. Vary: Origin) zapobiegająca zatruciu/mieszaniu pamięci podręcznej
Origin / Access-Control-Request-*Używane do symulacji zachowania preflight

Heurystyki (częste problemy z CORS)

Wnioski oparte są na praktycznych i bezpiecznych kontrolach wykrywających błędne lub ryzykowne konfiguracje CORS.

SprawdzenieDlaczego to ważne
Wildcard + dane uwierzytelniająceAccess-Control-Allow-Origin: * nie może być używane z danymi uwierzytelniającymi; przeglądarka zablokuje lub zachowanie jest niebezpieczne
Brak Vary: OriginJeśli odpowiedzi różnią się w zależności od Origin, ale nie są poprawnie buforowane, współdzielone pamięci podręcznej mogą mieszać odpowiedzi między stronami
Odbijanie OriginBezmyślne powielanie Origin może nieumyślnie zezwolić na niezaufane źródła
Ostrzeżenia Null OriginOrigin: null może pojawić się w osadzonych iframe lub kontekstach plików; zezwalanie na to jest często ryzykowne
Brak Allow-Methods / Allow-HeadersPreflight może się nie powieść, jeśli serwer nie zezwala jawnie na metodę/nagłówki
Zbyt szerokie Allow-HeadersZezwalanie na zbyt wiele nagłówków może zwiększyć powierzchnię ataku
Brak Max-AgePreflight może być uruchamiane zbyt często, zwiększając opóźnienia
CORS to mechanizm egzekwowany przez przeglądarkę. Serwery nadal mogą być dostępne cross-origin przez klientów niebędących przeglądarkami; traktuj CORS jako część szerszej strategii bezpieczeństwa, a nie jedyną kontrolę.

Wiersz poleceń

Użyj tych poleceń, aby odtworzyć zachowanie CORS i preflight z terminala. Są pomocne w debugowaniu i weryfikacji raportów narzędzia.

macOS / Linux

Sprawdź nagłówki CORS dla normalnego żądania (symuluj Origin przeglądarki)

curl -i -H "Origin: https://example.com" https://api.example.com/resource

Szukaj Access-Control-Allow-Origin, Access-Control-Allow-Credentials i Vary.

Wykonaj żądanie preflight OPTIONS (metoda + nagłówki)

curl -i -X OPTIONS -H "Origin: https://app.example.com" -H "Access-Control-Request-Method: POST" -H "Access-Control-Request-Headers: authorization, content-type" https://api.example.com/private

Preflight musi zwrócić poprawne Access-Control-Allow-Methods i Access-Control-Allow-Headers, aby przeglądarka mogła kontynuować.

Śledź przekierowania podczas sprawdzania nagłówków

curl -iL -H "Origin: https://example.com" https://api.example.com

Przydatne, gdy punkty końcowe przekierowują do innego hosta, który ma inne reguły CORS.

Windows (PowerShell)

Sprawdź nagłówki odpowiedzi z nagłówkiem Origin

$r = Invoke-WebRequest -Uri https://api.example.com/resource -Headers @{ Origin = "https://example.com" }; $r.Headers

Wyświetla nagłówki Access-Control-*, jeśli są obecne.

Jeśli Twój frontend używa ciasteczek lub autoryzacji, unikaj permisywnego CORS. Preferuj jawną listę dozwolonych zaufanych źródeł i dołączaj Vary: Origin, gdy odpowiedzi różnią się w zależności od źródła.

Zastosowania

Debugowanie błędu przeglądarki "CORS blocked"

Gdy fetch/XHR kończy się błędem CORS, sprawdź, czy serwer zwraca wymagane nagłówki Access-Control-* dla Twojego źródła i typu żądania.

  • Potwierdź, że Access-Control-Allow-Origin pasuje do źródła Twojej aplikacji
  • Jeśli używasz ciasteczek/autoryzacji, sprawdź, czy Access-Control-Allow-Credentials jest ustawione na true (i źródło nie jest wildcard)
  • Upewnij się, że Vary: Origin jest obecny, gdy zezwalasz na wiele źródeł

Weryfikacja preflight dla nagłówków Authorization / niestandardowych

Większość uwierzytelnionych wywołań API wyzwala preflight z powodu nagłówka Authorization lub niesimple typów treści. To narzędzie pomaga upewnić się, że odpowiedzi OPTIONS zezwalają na wymaganą metodę i nagłówki.

  • Sprawdź, czy Access-Control-Allow-Methods zawiera POST/PUT/PATCH/DELETE w razie potrzeby
  • Sprawdź, czy Access-Control-Allow-Headers zawiera authorization, content-type i wymagane nagłówki X-*
  • Wykryj brakujące allow-methods/allow-headers przed wdrożeniem

Przegląd bezpieczeństwa polityki CORS

Błędne konfiguracje CORS mogą przypadkowo udostępnić prywatne API złośliwym witrynom (szczególnie z poświadczeniami). Użyj wyników, aby wykryć ryzykowne wzorce.

  • Wykryj wildcard origin w połączeniu z poświadczeniami
  • Wykryj wzorce odzwierciedlania źródła, które pozwalają na dowolne witryny
  • Oznacz zezwalanie na Origin: null, gdy nie jest to zamierzone

Popraw wydajność poprzez buforowanie preflight

Żądania preflight dodają opóźnienia i rundy. Prawidłowy Max-Age może zmniejszyć powtarzające się sprawdzania preflight dla stabilnych API.

  • Sprawdź, czy Access-Control-Max-Age jest obecny, gdy jest to odpowiednie
  • Zmniejsz powtarzające się wywołania OPTIONS dla częstego ruchu API

❓ Frequently Asked Questions

Czym jest CORS w prostych słowach?

CORS (Cross-Origin Resource Sharing) to mechanizm bezpieczeństwa przeglądarki, który kontroluje, czy strona internetowa z jednego źródła (schemat + host + port) może odczytywać odpowiedzi z innego źródła. Opiera się na konkretnych nagłówkach odpowiedzi Access-Control-*.

Kiedy przeglądarka wysyła żądanie preflight (OPTIONS)?

Preflight jest wysyłany, gdy żądanie nie jest "simple", na przykład przy użyciu metod takich jak POST z określonymi typami treści lub podczas wysyłania nagłówków takich jak Authorization lub niestandardowe nagłówki X-*. Przeglądarka sprawdza uprawnienia za pomocą OPTIONS przed wysłaniem rzeczywistego żądania.

Dlaczego "Access-Control-Allow-Origin: *" jest niebezpieczne z poświadczeniami?

Przeglądarki wymagają jawnego źródła, gdy zaangażowane są poświadczenia. Użycie wildcard z poświadczeniami jest nieprawidłowe dla żądań z poświadczeniami i wskazuje na ryzykowną konfigurację. Preferuj jawną listę dozwolonych zaufanych źródeł.

Dlaczego potrzebuję Vary: Origin?

Jeśli Twój serwer zwraca różne wartości Access-Control-Allow-Origin w zależności od źródła żądania, pamięci podręczne muszą różnić się w zależności od źródła, aby uniknąć serwowania odpowiedzi przeznaczonej dla jednej witryny innej. Vary: Origin pomaga zapobiegać mieszaniu pamięci podręcznej i powiązanym problemom bezpieczeństwa.

Czy CORS może chronić moje API przed klientami spoza przeglądarki?

Nie. CORS jest egzekwowany przez przeglądarki. Skrypty działające poza przeglądarką (serwery, curl, aplikacje mobilne) mogą wywoływać Twoje API niezależnie od CORS. Do rzeczywistej kontroli dostępu używaj uwierzytelniania, autoryzacji i ograniczania liczby żądań.

Co powinienem umieścić w "Nagłówkach żądania" podczas testowania preflight?

Wymień nagłówki, które będzie wysyłać Twoja aplikacja frontendowa, oddzielone przecinkami (np. authorization, content-type, x-request-id). Symuluje to Access-Control-Request-Headers i sprawdza, czy serwer je zezwala.

Czy bezpiecznie jest wklejać tutaj adresy URL?

Narzędzie wykonuje żądania po stronie serwera do podanego adresu URL i blokuje cele w sieciach prywatnych. Unikaj umieszczania tajnych danych w adresach URL (jak tokeny w ciągach zapytań) i preferuj publiczne punkty końcowe, którym ufasz.

Pro Tips

Security Tip

Preferuj listę dozwolonych zaufanych źródeł zamiast odzwierciedlania dowolnego Origin. Traktuj CORS jako konfigurację wrażliwą bezpieczeństwa.

Security Tip

Jeśli używasz ciasteczek/uwierzytelniania, ustaw Access-Control-Allow-Credentials: true ORAZ zwróć jawny origin (nie "*").

Security Tip

Dodaj Vary: Origin, gdy zezwalasz na wiele źródeł lub dynamicznie wybierasz dozwolony origin.

Performance Tip

Dodaj rozsądny Access-Control-Max-Age, aby zmniejszyć opóźnienie preflight dla stabilnych API.

Best Practice

Testuj zarówno ścieżkę preflight, jak i rzeczywistego żądania; niektóre konfiguracje zwracają poprawne nagłówki dla GET, ale zawodzą dla OPTIONS.

CI Tip

Eksportuj raporty JSON i przechowuj je wraz ze zmianami konfiguracji bramy API, aby szybko wykrywać regresje.

Additional Resources

Other Tools