CORS Checker - Trova il controllo che blocca la tua richiesta cross-origin | POLPROG Vai al contenuto

CORS Checker

Trova il controllo che blocca la tua richiesta cross-origin

Un browser lascerebbe che il tuo codice leggesse questa risposta? E se no, quale controllo ha detto di no.

Strumento web Web
Pagina ufficiale del prodotto Editore: POLPROG
Pagina ufficiale del prodotto
6
Fasi dell'analisi
5
Schede del rapporto
10
Origini per analisi
0
Corpi di richiesta inviati
01CORS Checker

Informazioni

Questa è la diagnosi di una richiesta, non un dump di intestazioni. Descrivi la chiamata che fa il tuo codice - l'endpoint, l'origine su cui gira, il metodo, le intestazioni che imposta, se invia credenziali - e lo strumento dice se un browser ti lascerebbe leggere la risposta e quale controllo preciso lo ha deciso.

Cosa succede davvero durante un'analisi

  1. Preparare la richiesta esattamente come descritta.
  2. Classificarla come semplice o soggetta a preflight, secondo le regole dello standard Fetch che applica un browser.
  3. Provare il preflight con una vera richiesta OPTIONS con Origin, Access-Control-Request-Method e, dove serve, Access-Control-Request-Headers.
  4. Inviare la richiesta vera, perché il preflight da solo non mostra mai le intestazioni CORS della risposta reale.
  5. Sondare l'elenco delle origini consentite con una richiesta in più da un'origine che il server non ha mai visto.
  6. Costruire il rapporto: verdetto, percorso della richiesta, intestazioni, rilievi e scambio tecnico.

Il sondaggio dell'elenco consentito

Un server che risponde a ogni origine con quella stessa origine sembra identico a un elenco consentito configurato bene, se provi soltanto il tuo. Una richiesta da un'origine che il server non ha mai visto separa i due casi, e questo conta perché un server che rimanda l'origine come eco, insieme alle credenziali, è esattamente la configurazione che rende una risposta leggibile da ogni sito visitato da quell'utente.

Le credenziali cambiano le regole

IntestazioneCon credenziali
Access-Control-Allow-OriginNiente asteriscoDeve nominare l'origine. Un asterisco viene rifiutato del tutto, anche accanto ad Access-Control-Allow-Credentials: true.
Allow-Methods, Allow-Headers, Expose-HeadersLetteraleUn asterisco smette di essere un jolly e si legge come nome letterale di intestazione o metodo.
Access-Control-Allow-CredentialsObbligatoriaL'unico valore accettato è la stringa esatta true, in minuscolo.

Rilievi, non aggettivi

Ogni rilievo porta una gravità, una categoria, la fase da cui proviene, la prova su cui si fonda, le intestazioni che riguarda e una raccomandazione. Anche i controlli superati sono elencati, quindi un risultato pulito si vede invece di restare semplicemente vuoto. Due regole che le raccomandazioni seguono, perché il consiglio ovvio è spesso quello sbagliato: qui nulla ti dice di aprire un metodo, un'intestazione o un'origine solo per far sparire un riquadro rosso - un DELETE bloccato può essere un endpoint correttamente chiuso - e qui nulla suggerisce mai di rimandare come eco un'origine arbitraria. La risposta è un elenco consentito, ogni volta.

Cosa non pretende

CORS decide quali origini possono leggere una risposta dentro un browser. Non è autenticazione, non concede permessi e non ferma la falsificazione di richieste tra siti, perché un attacco CSRF non ha mai bisogno di leggere la risposta. Qualsiasi client che non sia un browser lo ignora del tutto. Questo strumento lo dice apertamente, invece di lasciare che un verdetto verde faccia pensare che il tuo endpoint sia protetto.

02Utilizzo

Che cosa risolve

Il problema
  • Funziona in curl e Postman, e fallisce nel browser
  • La console dice bloccato dalla policy CORS, e poco altro
  • Il preflight fallisce, l'endpoint non vede mai la richiesta e i log restano vuoti
Il risultato
  • Il controllo esatto che ferma il browser, nominato
  • Un preflight reale e una richiesta reale, entrambi davvero inviati
  • Una soluzione che non significa aprire l'endpoint
Per chi
  • Sviluppatrici e sviluppatori front il cui fetch viene bloccato
  • Team API che configurano CORS su più ambienti
  • Chi sta debuggando un preflight che non ha scritto
03Funzionalità principali

Funzionalità principali

Le funzionalità più importanti spiegate in modo pratico.

Un verdetto su una richiesta precisa

Consentita o bloccata, per esattamente il metodo, le intestazioni, l'origine e la modalità credenziali che descrivi, con il controllo che lo ha deciso, nominato. Non un elenco di intestazioni lasciato alla tua interpretazione.

Un preflight reale e una richiesta reale

Sei fasi, ciascuna riportata appena si conclude. Il preflight OPTIONS parte come lo manderebbe un browser, e poi segue la richiesta vera, perché il preflight da solo non mostra mai le intestazioni CORS della risposta reale.

Semplice o con preflight, deciso per bene

Una richiesta è semplice solo se il metodo è GET, HEAD o POST e ogni intestazione è nella safelist CORS, con Content-Type limitato a tre valori. Lo strumento applica la regola invece di indovinare, ed è di solito da lì che arriva la richiesta OPTIONS inattesa.

Il sondaggio dell'elenco delle origini consentite

Una richiesta in più da un'origine che il server non ha mai visto separa un vero elenco consentito da un server che rimanda come eco tutto ciò che riceve. I due casi sembrano identici se provi soltanto la tua origine.

Richieste con credenziali giudicate con le loro regole

Un'origine jolly diventa non valida, e gli asterischi in Allow-Methods, Allow-Headers ed Expose-Headers smettono di essere jolly e si leggono come nomi letterali. L'analisi applica il set di regole più severo, non quello più diffuso.

Reindirizzamenti ricontrollati a ogni salto

Un browser ricomincia il controllo CORS a ogni reindirizzamento, quindi ogni salto viene valutato di nuovo prima di essere seguito. Una catena che finisce in un punto permissivo può essere bloccata comunque per strada.

Più origini in una sola analisi

Fino a dieci origini aggiuntive provate contro lo stesso endpoint e mostrate in tabella, il modo più rapido per confermare che locale, staging e produzione sono tutte nell'elenco consentito e nulla di più.

Rilievi con prova e raccomandazione

Ognuno porta una gravità, una categoria, la fase da cui proviene, la prova che lo sostiene e le intestazioni che riguarda, accanto ai controlli superati. Nessuna raccomandazione ti dice di aprire un metodo, un'intestazione o un'origine solo per far sparire un avviso.

04Scarica

Accesso al prodotto

Un percorso chiaro dalla fonte ufficiale al primo utilizzo riuscito.

Scegli la piattaforma giusta

Usa uno dei link ufficiali disponibili per il tuo dispositivo o browser.

Installa o apri

Segui le istruzioni dello store o apri l'applicazione web. Nessun programma di installazione di terze parti.

Configura e inizia

Controlla le opzioni, scegli le preferenze e inizia dal flusso principale.

Opzioni di accesso ufficiali
05Tecnologia

Tecnologia del prodotto

Una panoramica trasparente delle tecnologie principali usate per creare e mantenere questo prodotto.

PHP
JavaScript
06Sicurezza

Privacy e sicurezza

I tuoi dati restano sul tuo dispositivo. Sempre.

Senza account, senza registrazione
Nessun tuo cookie viene inoltrato
Non viene mai inviato un corpo di richiesta
Nulla è conservato una volta che il rapporto ti raggiunge