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.
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
Wprowadź docelowy adres URL
Wklej endpoint, który chcesz przetestować (np. https://api.example.com/resource).
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.
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.
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.
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.
| Ustawienie | Zachowanie | Domyślne |
|---|---|---|
| Tryb sprawdzania | Automatyczny, Proste żądanie lub Tylko Preflight | Automatyczny |
| Uruchom Preflight (OPTIONS) | Jeśli włączone, wykonuje symulację preflight OPTIONS | Włączone |
| Origin | Wartość nagłówka Origin używana do analizy/preflight | https://example.com |
| Metoda żądania | Wartość Access-Control-Request-Method dla preflight | GET |
| Nagłówki żądania | Access-Control-Request-Headers (rozdzielone przecinkami) dla preflight | Puste |
| Obsługa przekierowań | Podąża za łańcuchem przekierowań do końcowego URL | Włączone |
| Maks. przekierowań | Limit przekierowań zapobiegający pętlom | 10 (zakres 0–20) |
| Limit czasu | Limit czasu żądania | 15000 ms |
| User-Agent | Identyfikuje agenta użytkownika żądania | Encode64Bot/1.0 (+https://encode64.com) |
| Sieci prywatne | Blokuje dostęp do zakresów sieci prywatnych dla bezpieczeństwa | Wyłą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łówek | Przeznaczenie |
|---|---|
| Access-Control-Allow-Origin | Które Origin(y) są dozwolone |
| Access-Control-Allow-Credentials | Czy ciasteczka/dane uwierzytelniające są dozwolone (wymaga origin bez wildcard) |
| Access-Control-Allow-Methods | Metody dozwolone dla żądań cross-origin (ważne dla preflight) |
| Access-Control-Allow-Headers | Dozwolone nagłówki (ważne dla Authorization i nagłówków niestandardowych) |
| Access-Control-Expose-Headers | Które nagłówki są czytelne dla JS w przeglądarce |
| Access-Control-Max-Age | Jak długo preflight może być przechowywane w pamięci podręcznej przeglądarki |
| Vary | Zmienność 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.
| Sprawdzenie | Dlaczego to ważne |
|---|---|
| Wildcard + dane uwierzytelniające | Access-Control-Allow-Origin: * nie może być używane z danymi uwierzytelniającymi; przeglądarka zablokuje lub zachowanie jest niebezpieczne |
| Brak Vary: Origin | Jeś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 Origin | Bezmyślne powielanie Origin może nieumyślnie zezwolić na niezaufane źródła |
| Ostrzeżenia Null Origin | Origin: null może pojawić się w osadzonych iframe lub kontekstach plików; zezwalanie na to jest często ryzykowne |
| Brak Allow-Methods / Allow-Headers | Preflight może się nie powieść, jeśli serwer nie zezwala jawnie na metodę/nagłówki |
| Zbyt szerokie Allow-Headers | Zezwalanie na zbyt wiele nagłówków może zwiększyć powierzchnię ataku |
| Brak Max-Age | Preflight może być uruchamiane zbyt często, zwiększając opóźnienia |
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/resourceSzukaj 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/privatePreflight 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.comPrzydatne, 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.HeadersWyświetla nagłówki Access-Control-*, jeśli są obecne.
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)?
❓Dlaczego "Access-Control-Allow-Origin: *" jest niebezpieczne z poświadczeniami?
❓Dlaczego potrzebuję Vary: Origin?
❓Czy CORS może chronić moje API przed klientami spoza przeglądarki?
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?
❓Czy bezpiecznie jest wklejać tutaj adresy URL?
Pro Tips
Preferuj listę dozwolonych zaufanych źródeł zamiast odzwierciedlania dowolnego Origin. Traktuj CORS jako konfigurację wrażliwą bezpieczeństwa.
Jeśli używasz ciasteczek/uwierzytelniania, ustaw Access-Control-Allow-Credentials: true ORAZ zwróć jawny origin (nie "*").
Dodaj Vary: Origin, gdy zezwalasz na wiele źródeł lub dynamicznie wybierasz dozwolony origin.
Dodaj rozsądny Access-Control-Max-Age, aby zmniejszyć opóźnienie preflight dla stabilnych API.
Testuj zarówno ścieżkę preflight, jak i rzeczywistego żądania; niektóre konfiguracje zwracają poprawne nagłówki dla GET, ale zawodzą dla OPTIONS.
Eksportuj raporty JSON i przechowuj je wraz ze zmianami konfiguracji bramy API, aby szybko wykrywać regresje.
Additional Resources
Other Tools
- Upiększacz CSS
- Upiększacz HTML
- Upiększacz JavaScript
- Upiększacz PHP
- Wybór koloru
- Ekstraktor sprite'ów
- Koder binarny Base32
- Dekoder Base32
- Koder Base32
- Koder binarny Base58
- Dekoder Base58
- Koder Base58
- Koder binarny Base62
- Dekoder Base62
- Koder Base62
- Koder binarny Base64
- Dekoder Base64
- Koder Base64
- Koder binarny szesnastkowy
- Dekoder szesnastkowy
- Koder szesnastkowy
- Formatowanie C#
- Formatowanie CSV
- Dockerfile Formatter
- Formatowanie Elm
- Formatowanie ENV
- Formatowanie Go
- Formatowanie GraphQL
- Formatowanie HCL
- Formatowanie INI
- Formatowanie JSON
- Formatowanie LaTeX
- Formatowanie Markdown
- Formatowanie Objective-C
- Php Formatter
- Formatowanie Proto
- Formatowanie Python
- Formatowanie Ruby
- Formatowanie Rust
- Formatowanie Scala
- Formatowanie skryptów powłoki
- Formatowanie SQL
- Formatowanie SVG
- Formatowanie Swift
- Formatowanie TOML
- Typescript Formatter
- Formatowanie XML
- Formatowanie YAML
- Formatowanie Yarn
- Minifikator CSS
- Html Minifier
- Javascript Minifier
- Minifikator JSON
- Minifikator XML
- Cache Headers Analyzer
- Csp Analyzer
- Dns Records Lookup
- Przegląd nagłówków HTTP
- Http Status Checker
- Open Graph Meta Checker
- Redirect Chain Viewer
- Robots Txt Tester
- Security Headers Checker
- Security Txt Checker
- Sitemap Url Inspector
- Tls Certificate Checker
- PDF do tekstu
- Tester wyrażeń regularnych
- Sprawdzanie pozycji w SERP
- Wyszukiwanie Whois