Verificatore CORS
Verifica la configurazione Cross-Origin Resource Sharing (CORS) per qualsiasi URL. Ispeziona le intestazioni di risposta Access-Control-*, esegui una richiesta preflight (OPTIONS) opzionale con un Origin/metodo/intestazioni personalizzati e rileva configurazioni errate comuni come wildcard + credenziali, Vary: Origin mancante o allow-headers troppo ampi.
Funzionalità
- Ispezione intestazioni CORS per qualsiasi URL pubblico (Access-Control-* e intestazioni correlate).
- Simulazione preflight opzionale (OPTIONS) con Origin, metodo richiesta e intestazioni richiesta personalizzati.
- Segui reindirizzamenti (fino a 10) per validare l'endpoint finale che i browser raggiungono effettivamente.
- Vista intestazioni grezze per trasparenza completa e debug.
- Rilevamenti + scheda punteggio con filtro "solo problemi" per triage rapido.
- Analisi Vary per rilevare Vary: Origin mancante e altre insidie CORS relative alla cache.
- Esporta risultati come report JSON e PDF per audit, ticket e documentazione.
- Raccomandazioni integrate per problemi comuni: wildcard+credenziali, riflessione Origin, Origin null, allow-methods/allow-headers mancanti, max-age mancante e allow-headers troppo ampi.
🧭 Come usare for cors-checker
Inserisci l'URL di destinazione
Incolla l'endpoint che desideri testare (es., https://api.example.com/resource).
Imposta l'Origin da cui stai testando
Inserisci l'Origin della tua app frontend (schema + host), es., https://app.example.com. Questo è il valore che i browser inviano nell'intestazione Origin.
Scegli una modalità di controllo
Usa Auto (consigliato) per analizzare sia le intestazioni di risposta che il comportamento preflight. Usa Richiesta semplice se vuoi specificamente uno scenario non preflight, o Solo preflight per eseguire controlli OPTIONS.
Configura i dettagli preflight (se applicabile)
Abilita "Esegui Preflight (OPTIONS)" e imposta Metodo Richiesta più Intestazioni Richiesta (separate da virgola) per simulare il comportamento preflight reale del browser (es., autorizzazione, content-type). Attiva "Considera credenziali" se il tuo caso d'uso include cookie o intestazioni di autenticazione.
Rivedi i rilevamenti ed esporta
Controlla i rilevamenti/la scheda punteggio e i dettagli dell'analisi CORS. Attiva "Mostra Intestazioni Grezze" durante il debug. Esporta JSON/PDF per condivisione o archiviazione negli audit.
Specifiche tecniche
Modello di richiesta
Lo strumento ispeziona le intestazioni CORS per un URL di destinazione e può opzionalmente eseguire una richiesta preflight (OPTIONS) utilizzando l'Origin, il metodo e le intestazioni richieste fornite. È supportato il seguito dei reindirizzamenti.
| Impostazione | Comportamento | Predefinito |
|---|---|---|
| Modalità di Controllo | Automatica, Richiesta semplice, o Solo Preflight | Automatica |
| Esegui Preflight (OPTIONS) | Se abilitato, esegue una simulazione di preflight OPTIONS | Abilitato |
| Origine | Valore dell'header Origin utilizzato per l'analisi/preflight | https://example.com |
| Metodo di Richiesta | Valore Access-Control-Request-Method per il preflight | GET |
| Header di Richiesta | Access-Control-Request-Headers (separati da virgola) per il preflight | Vuoto |
| Segui Reindirizzamenti | Segue la catena di reindirizzamenti fino all'URL finale | Abilitato |
| Reindirizzamenti Massimi | Limite di reindirizzamenti per prevenire loop | 10 (intervallo 0–20) |
| Timeout | Limite di timeout della richiesta | 15000 ms |
| User-Agent | Identifica l'user agent della richiesta | Encode64Bot/1.0 (+https://encode64.com) |
| Reti private | Blocca l'accesso agli intervalli di rete privati per sicurezza | Disabilitato (reti private non consentite) |
Header analizzati (set CORS principale)
L'analizzatore si concentra sugli header di risposta e richiesta CORS standard utilizzati dai browser e dai controlli di preflight.
| Header | Scopo |
|---|---|
| Access-Control-Allow-Origin | Quali Origini sono consentite |
| Access-Control-Allow-Credentials | Se sono consentiti cookie/credenziali (richiede un'origine non wildcard) |
| Access-Control-Allow-Methods | Metodi consentiti per richieste cross-origin (importante per il preflight) |
| Access-Control-Allow-Headers | Header consentiti (importante per Authorization e header personalizzati) |
| Access-Control-Expose-Headers | Quali header sono leggibili dal JS del browser |
| Access-Control-Max-Age | Quanto a lungo il preflight può essere memorizzato nella cache del browser |
| Vary | Variazione della chiave di cache (es. Vary: Origin) per prevenire avvelenamento/mescolamento della cache |
| Origin / Access-Control-Request-* | Utilizzato per simulare il comportamento del preflight |
Euristiche (problemi comuni di CORS segnalati)
I risultati si basano su controlli pratici e orientati alla sicurezza per rilevare configurazioni CORS rotte o rischiose.
| Controllo | Perché è importante |
|---|---|
| Wildcard + credenziali | Access-Control-Allow-Origin: * non può essere usato con le credenziali; i browser bloccheranno o il comportamento è insicuro |
| Manca Vary: Origin | Se le risposte variano per Origin ma non sono memorizzate correttamente, le cache condivise possono mescolare risposte tra siti |
| Riflessione dell'Origin | Ripetere ciecamente l'Origin può consentire involontariamente origini non attendibili |
| Avvisi su Origin nullo | Origin: null può apparire in iframe sandbox o contesti file; consentirlo è spesso rischioso |
| Mancano Allow-Methods / Allow-Headers | Il preflight potrebbe fallire se il server non consente esplicitamente metodo/header |
| Allow-Headers troppo ampio | Consentire troppi header può ampliare la superficie di attacco |
| Manca Max-Age | Il preflight potrebbe essere eseguito troppo frequentemente, aggiungendo latenza |
Riga di comando
Usa questi comandi per riprodurre il comportamento CORS e preflight dal tuo terminale. Sono utili per il debug e la verifica di quanto riportato dallo strumento.
macOS / Linux
Controlla gli header CORS per una richiesta normale (simula un Origin del browser)
curl -i -H "Origin: https://example.com" https://api.example.com/resourceCerca Access-Control-Allow-Origin, Access-Control-Allow-Credentials e Vary.
Esegui una richiesta di preflight OPTIONS (metodo + header)
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/privateIl preflight deve restituire i corretti Access-Control-Allow-Methods e Access-Control-Allow-Headers affinché il browser proceda.
Segui i reindirizzamenti durante il controllo degli header
curl -iL -H "Origin: https://example.com" https://api.example.comUtile quando gli endpoint reindirizzano a un host diverso che ha regole CORS differenti.
Windows (PowerShell)
Ispeziona gli header di risposta con un header Origin
$r = Invoke-WebRequest -Uri https://api.example.com/resource -Headers @{ Origin = "https://example.com" }; $r.HeadersMostra gli header Access-Control-* se presenti.
Casi d'uso
Debug di un errore del browser "CORS bloccato" nel frontend
Quando fetch/XHR fallisce con un errore CORS, verifica se il server restituisce gli header Access-Control-* richiesti per la tua Origin e il tipo di richiesta.
- Conferma che Access-Control-Allow-Origin corrisponda all'origine della tua app
- Se utilizzi cookie/autenticazione, controlla che Access-Control-Allow-Credentials sia true (e che l'origine non sia un carattere jolly)
- Assicurati che Vary: Origin sia presente quando si consentono più origini
Convalida della preflight per Authorization / header personalizzati
La maggior parte delle chiamate API autenticate attiva una preflight a causa di Authorization o tipi di contenuto non semplici. Questo strumento aiuta a garantire che le risposte OPTIONS consentano il metodo e gli header richiesti.
- Verifica che Access-Control-Allow-Methods includa POST/PUT/PATCH/DELETE secondo necessità
- Verifica che Access-Control-Allow-Headers includa authorization, content-type e gli header X-* richiesti
- Rileva la mancanza di allow-methods/allow-headers prima del deploy
Revisione della sicurezza della politica CORS
Le configurazioni errate di CORS possono esporre involontariamente API private a siti malevoli (specialmente con credenziali). Utilizza i risultati per individuare pattern ad alto rischio.
- Rileva l'origine con carattere jolly combinata con credenziali
- Rileva pattern di origine riflessi che consentono siti arbitrari
- Segnala il permesso di Origin: null quando non previsto
Migliora le prestazioni memorizzando in cache la preflight
Le richieste preflight aggiungono round-trip e latenza. Un Max-Age corretto può ridurre i controlli preflight ripetuti per API stabili.
- Verifica che Access-Control-Max-Age sia presente quando appropriato
- Riduci le chiamate OPTIONS ripetute per traffico API frequente
❓ Frequently Asked Questions
❓Cos'è il CORS in termini semplici?
CORS (Cross-Origin Resource Sharing) è un meccanismo di sicurezza del browser che controlla se una pagina web da un'origine (schema + host + porta) può leggere risposte da un'altra origine. Si basa su specifici header di risposta Access-Control-*.❓Quando un browser invia una richiesta di preflight (OPTIONS)?
❓Perché "Access-Control-Allow-Origin: *" è pericoloso con le credenziali?
❓Perché ho bisogno di Vary: Origin?
❓CORS può proteggere la mia API da client non browser?
CORS viene applicato dai browser. Script eseguiti al di fuori di un browser (server, curl, app mobile) possono chiamare la tua API indipendentemente da CORS. Usa autenticazione, autorizzazione e limitazione della frequenza per un controllo di accesso reale.❓Cosa devo inserire in "Request Headers" quando testo il preflight?
❓È sicuro incollare URL qui?
Pro Tips
Preferisci una whitelist di origini attendibili invece di riflettere qualsiasi Origin. Tratta CORS come una configurazione sensibile per la sicurezza.
Se usi cookie/autenticazione, imposta Access-Control-Allow-Credentials: true E restituisci un'origine esplicita (non "*").
Aggiungi Vary: Origin quando permetti più origini o selezioni dinamicamente l'origine consentita.
Aggiungi un Access-Control-Max-Age ragionevole per ridurre la latenza del preflight per API stabili.
Testa sia il percorso del preflight che quello della richiesta reale; alcune configurazioni restituiscono header corretti per GET ma falliscono per OPTIONS.
Esporta report JSON e conservali insieme alle modifiche di configurazione del gateway API per individuare rapidamente regressioni.
Additional Resources
Other Tools
- Abbellitore CSS
- Abbellitore HTML
- Abbellitore Javascript
- Abbellitore PHP
- Selettore Colori
- Estrattore Sprite
- Codificatore Binario Base32
- Decodificatore Base32
- Codificatore Base32
- Codificatore Binario Base58
- Decodificatore Base58
- Codificatore Base58
- Codificatore Binario Base62
- Decodificatore Base62
- Codificatore Base62
- Codificatore Binario Base64
- Decodificatore Base64
- Codificatore Base64
- Codificatore Binario Esadecimale
- Decodificatore Esadecimale
- Codificatore Esadecimale
- Formattatore Csharp
- Formattatore CSV
- Dockerfile Formatter
- Formattatore Elm
- Formattatore ENV
- Formattatore Go
- Formattatore GraphQL
- Formattatore HCL
- Formattatore INI
- Formattatore JSON
- Formattatore LaTeX
- Formattatore Markdown
- Formattatore Objective-C
- Php Formatter
- Formattatore Proto
- Formattatore Python
- Formattatore Ruby
- Formattatore Rust
- Formattatore Scala
- Formattatore Script Shell
- Formattatore SQL
- Formattatore SVG
- Formattatore Swift
- Formattatore TOML
- Typescript Formatter
- Formattatore XML
- Formattatore YAML
- Formattatore Yarn
- Minificatore CSS
- Html Minifier
- Javascript Minifier
- Minificatore JSON
- Minificatore XML
- Cache Headers Analyzer
- Csp Analyzer
- Dns Records Lookup
- Visualizzatore Intestazioni 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 a Testo
- Tester Regex
- Controllore Posizione SERP
- Ricerca Whois