Tester CORS
Testa e debugga le politiche CORS (Cross-Origin Resource Sharing) e le richieste API
Impostazioni richiesta
Configura la tua richiesta API per il test
Richieste di esempio
Prova queste richieste API predefinite
Informazioni CORS
Informazioni di base su CORS
Cos'è CORS? CORS (Cross-Origin Resource Sharing) è un meccanismo che consente ai browser web di effettuare richieste cross-origin (dominio, protocollo o porta diversi) da script in esecuzione nel browser.
Intestazioni CORS chiave
Access-Control-Allow-Origin: Specifica quali origini sono autorizzate ad accedere alla risorsaAccess-Control-Allow-Methods: Specifica quali metodi HTTP sono consentitiAccess-Control-Allow-Headers: Specifica quali intestazioni HTTP possono essere utilizzateAccess-Control-Allow-Credentials: Specifica se includere le credenziali (cookie, autenticazione HTTP)
💡 Soluzioni CORS
Soluzioni lato server
1. Express.js (Node.js):
const cors = require('cors');
app.use(cors({
origin: 'https://example.com',
methods: ['GET', 'POST'],
credentials: true
}));2. Spring Boot (Java):
@CrossOrigin(origins = "https://example.com")
@RestController
public class ApiController { ... }Soluzioni lato client
1. Utilizzo di un server proxy:
// package.json (React)
"proxy": "http://localhost:3001"2. JSONP (solo GET):
// Soluzione limitata ma semplice
fetch('api?callback=handleResponse')🔧 Configurazione CORS per ambiente
Next.js
// next.config.js
module.exports = {
async headers() {
return [
{
source: '/api/:path*',
headers: [
{
key: 'Access-Control-Allow-Origin',
value: '*'
}
]
}
]
}
}Nginx
location /api {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods
"GET, POST, OPTIONS";
add_header Access-Control-Allow-Headers
"Content-Type, Authorization";
}Apache
# .htaccess
Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Methods
"GET, POST, OPTIONS"
Header always set Access-Control-Allow-Headers
"Content-Type, Authorization"Configurazione CORS per ambiente
Scenari di test
- • Richiesta semplice: Testa il comportamento CORS di base con richieste GET
- • Richiesta preflight: Testa le richieste preflight con i metodi PUT/DELETE
- • Intestazioni personalizzate: Testa le richieste con l'intestazione Authorization
- • Credenziali: Testa le richieste con i cookie
- • Gestione degli errori: Testa gli scenari di errore
Considerazioni sulla sicurezza
- • Fai attenzione all'uso del carattere jolly (*) a causa dei rischi per la sicurezza
- • Principio del privilegio minimo: consenti solo le origini e i metodi necessari
- • Restrizioni delle credenziali: consenti solo origini specifiche quando includi le credenziali
- • Revisione regolare: rivedi e aggiorna periodicamente le politiche CORS
Suggerimenti per il debug CORS
Strumenti per sviluppatori del browser
- • Controlla le richieste OPTIONS nella scheda Rete
- • Cerca i messaggi di errore CORS nella Console
- • Verifica le intestazioni CORS nelle intestazioni di risposta
Strumenti utili
- • CORS Tester (questo strumento)
- • Postman (per il test API)
- • comando curl (per il test diretto del server)