CORS Checker - Znajdź kontrolę, która blokuje Twoje żądanie cross-origin | POLPROG Przejdź do treści

CORS Checker

Znajdź kontrolę, która blokuje Twoje żądanie cross-origin

Czy przeglądarka pozwoli Twojemu kodowi odczytać tę odpowiedź? A jeśli nie, to która kontrola powiedziała nie.

Narzędzie webowe Web
Oficjalna strona produktu Wydawca: POLPROG
Oficjalna strona produktu
6
Etapy analizy
5
Zakładki raportu
10
Origin na jedno sprawdzenie
0
Wysłane treści żądań
01CORS Checker

O produkcie

To diagnoza jednego żądania, a nie zrzut nagłówków. Opisujesz wywołanie, które robi Twój kod - punkt końcowy, origin, na którym działa, metodę, ustawiane nagłówki, to, czy wysyła poświadczenia - a narzędzie mówi, czy przeglądarka pozwoli Ci odczytać odpowiedź i która konkretnie kontrola o tym zdecydowała.

Co naprawdę dzieje się podczas analizy

  1. Przygotowanie żądania dokładnie tak, jak je opisano.
  2. Klasyfikacja jako proste albo wymagające preflightu, według reguł standardu Fetch, które stosuje przeglądarka.
  3. Test preflightu prawdziwym żądaniem OPTIONS z nagłówkami Origin, Access-Control-Request-Method i, gdy trzeba, Access-Control-Request-Headers.
  4. Wysłanie właściwego żądania, bo sam preflight nigdy nie pokazuje nagłówków CORS na prawdziwej odpowiedzi.
  5. Sprawdzenie listy dozwolonych origin jednym dodatkowym żądaniem z origin, którego serwer nigdy nie widział.
  6. Zbudowanie raportu: werdykt, przebieg żądania, nagłówki, ustalenia i wymiana techniczna.

Sprawdzenie listy dozwolonych origin

Serwer, który każdemu origin odpowiada tym samym origin, wygląda identycznie jak poprawnie skonfigurowana lista dozwolonych, jeżeli testujesz wyłącznie własny adres. Jedno żądanie z origin, którego serwer nigdy nie widział, rozdziela te dwa przypadki, a ma to znaczenie, bo serwer odbijający origin w połączeniu z poświadczeniami to konfiguracja, przez którą odpowiedź staje się czytelna dla każdej strony odwiedzanej przez użytkownika.

Poświadczenia zmieniają reguły

NagłówekZ poświadczeniami
Access-Control-Allow-OriginBez gwiazdkiMusi wskazać origin. Gwiazdka jest odrzucana, nawet obok Access-Control-Allow-Credentials: true.
Allow-Methods, Allow-Headers, Expose-HeadersDosłownieGwiazdka przestaje być symbolem wieloznacznym i jest czytana jako dosłowna nazwa nagłówka albo metody.
Access-Control-Allow-CredentialsWymaganyJedyną przyjmowaną wartością jest dokładny ciąg true, małymi literami.

Konkrety, nie przymiotniki

Każde ustalenie niesie ważność, kategorię, fazę, z której pochodzi, dowód, na którym się opiera, nagłówki, których dotyczy, i zalecenie. Wypisane są też kontrole, które przeszły, więc czysty wynik jest widoczny, a nie po prostu pusty. Dwie zasady, którymi kierują się zalecenia, bo oczywista rada bywa złą radą: nic tutaj nie każe Ci otworzyć metody, nagłówka ani origin tylko po to, żeby zniknął czerwony komunikat - zablokowany DELETE może być poprawnie zamkniętym punktem końcowym - i nic tutaj nigdy nie proponuje odbijania dowolnego Origin. Odpowiedzią jest lista dozwolonych, za każdym razem.

Czego nie obiecuje

CORS decyduje, które origin mogą odczytać odpowiedź wewnątrz przeglądarki. Nie jest uwierzytelnianiem, nie przyznaje uprawnień i nie powstrzymuje ataków CSRF, bo atak CSRF nigdy nie musi odczytać odpowiedzi. Każdy klient, który nie jest przeglądarką, całkowicie to ignoruje. To narzędzie mówi o tym wprost, zamiast pozwolić, by zielony werdykt sugerował, że Twój punkt końcowy jest chroniony.

02Zastosowanie

Co to rozwiązuje

Problem
  • Działa w curlu i Postmanie, a zawodzi w przeglądarce
  • Konsola mówi, że blokuje polityka CORS, i niewiele poza tym
  • Preflight zawodzi, więc punkt końcowy nie widzi żądania, a logi są puste
Efekt
  • Wiadomo, która kontrola zatrzymuje przeglądarkę
  • Prawdziwy preflight i prawdziwe żądanie, oba naprawdę wysłane
  • Poprawka, która nie oznacza otwarcia punktu końcowego
Dla kogo
  • Programiści frontendu, których wywołanie fetch jest blokowane
  • Zespoły API konfigurujące CORS w kilku środowiskach
  • Każdy, kto debuguje preflight, którego sam nie napisał
03Kluczowe funkcje

Kluczowe funkcje

Najważniejsze możliwości opisane w praktyczny sposób.

Werdykt dla jednego konkretnego żądania

Dozwolone albo zablokowane, dla dokładnie tej metody, nagłówków, origin i trybu poświadczeń, które opisujesz, z nazwaną kontrolą, która o tym zdecydowała. To nie jest lista nagłówków zostawiona Ci do interpretacji.

Prawdziwy preflight i prawdziwe żądanie

Sześć etapów, każdy raportowany w chwili zakończenia. Preflight OPTIONS jest wysyłany tak, jak wysłałaby go przeglądarka, a po nim idzie właściwe żądanie, bo sam preflight nigdy nie pokazuje nagłówków CORS na prawdziwej odpowiedzi.

Proste czy z preflightem, rozstrzygane zgodnie ze standardem

Żądanie jest proste tylko wtedy, gdy metodą jest GET, HEAD albo POST, a każdy nagłówek należy do listy bezpiecznej CORS, przy czym Content-Type ogranicza się do trzech wartości. Narzędzie stosuje regułę, zamiast zgadywać, a to zwykle stąd bierze się niespodziewane żądanie OPTIONS.

Sprawdzenie listy dozwolonych origin

Jedno dodatkowe żądanie z origin, którego serwer nigdy nie widział, oddziela prawdziwą listę dozwolonych od serwera odbijającego wszystko, co dostanie. Te dwa przypadki wyglądają identycznie, jeżeli testujesz wyłącznie własny origin.

Żądania z poświadczeniami oceniane własnymi regułami

Gwiazdka w origin przestaje być poprawna, a gwiazdki w Allow-Methods, Allow-Headers i Expose-Headers przestają być symbolami wieloznacznymi i są czytane jako dosłowne nazwy. Analiza stosuje ostrzejszy zestaw reguł, a nie ten powszechnie znany.

Przekierowania sprawdzane na każdym skoku

Przeglądarka zaczyna kontrolę CORS od nowa przy każdym przekierowaniu, więc każdy skok jest oceniany ponownie, zanim zostanie wykonany. Łańcuch kończący się w miejscu pobłażliwym i tak może zostać zablokowany po drodze.

Kilka origin w jednym uruchomieniu

Do dziesięciu dodatkowych origin sprawdzonych wobec tego samego punktu końcowego i pokazanych w tabeli, co jest najszybszym sposobem, żeby potwierdzić, że lokalne, testowe i produkcyjne są na liście dozwolonych i nic ponad to.

Ustalenia z dowodem i zaleceniem

Każde niesie ważność, kategorię, fazę, z której pochodzi, dowód, który za nim stoi, i nagłówki, których dotyczy, obok kontroli, które przeszły. Żadne zalecenie nie każe otwierać metody, nagłówka ani origin tylko po to, żeby zniknęło ostrzeżenie.

04Pobierz

Dostęp do produktu

Prosta droga od oficjalnego źródła do pierwszego udanego użycia.

Wybierz właściwą platformę

Skorzystaj z jednego z oficjalnych odnośników dostępnych dla Twojego urządzenia lub przeglądarki.

Zainstaluj lub otwórz

Postępuj zgodnie z instrukcjami sklepu lub otwórz aplikację internetową. Bez zewnętrznych instalatorów.

Skonfiguruj i zacznij

Sprawdź dostępne opcje, wybierz preferencje i rozpocznij od podstawowego zastosowania.

Oficjalne opcje dostępu
05Technologia

Technologia produktu

Przejrzysty opis głównych technologii użytych do budowy i utrzymania produktu.

PHP
JavaScript
06Bezpieczeństwo

Prywatność i bezpieczeństwo

Twoje dane pozostają na Twoim urządzeniu. Zawsze.

Bez konta i bez rejestracji
Żadne Twoje ciasteczko nie jest przekazywane
Treść żądania nigdy nie jest wysyłana
Nic nie jest przechowywane, gdy raport do Ciebie dotrze