Testeur CORS
Testez et déboguez les politiques de partage de ressources entre origines (CORS) et les requêtes API
Qu'est-ce que CORS ? CORS (Cross-Origin Resource Sharing) est un mécanisme qui permet aux navigateurs web d'effectuer des requêtes cross-origin (domaine, protocole ou port différent) à partir de scripts exécutés dans le navigateur.
En-têtes CORS Clés
Access-Control-Allow-Origin: Spécifie les origines autorisées à accéder à la ressourceAccess-Control-Allow-Methods: Spécifie les méthodes HTTP autoriséesAccess-Control-Allow-Headers: Spécifie les en-têtes HTTP qui peuvent être utilisésAccess-Control-Allow-Credentials: Spécifie s'il faut inclure les identifiants (cookies, authentification HTTP)
💡 Solutions CORS
Solutions Côté Serveur
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 { ... }Solutions Côté Client
1. Utilisation d'un Serveur Proxy:
// package.json (React)
"proxy": "http://localhost:3001"2. JSONP (GET uniquement):
// Solution limitée mais simple
fetch('api?callback=handleResponse')🔧 Configuration CORS par Environnement
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"Configuration CORS par Environnement
Scénarios de Test
- • Requête Simple: Tester le comportement CORS de base avec des requêtes GET
- • Requête Pré-vol: Tester les requêtes pré-vol avec les méthodes PUT/DELETE
- • En-têtes Personnalisés: Tester les requêtes avec l'en-tête Authorization
- • Identifiants: Tester les requêtes avec des cookies
- • Gestion des Erreurs: Tester les scénarios d'échec
Considérations de Sécurité
- • Soyez prudent avec l'utilisation de caractères génériques (*) en raison des risques de sécurité
- • Principe du moindre privilège: N'autorisez que les origines et méthodes nécessaires
- • Restrictions des identifiants: N'autorisez que des origines spécifiques lors de l'inclusion d'identifiants
- • Examen régulier: Examinez et mettez à jour périodiquement les politiques CORS
Conseils de Débogage CORS
Outils de Développement du Navigateur
- • Vérifier les requêtes OPTIONS dans l'onglet Réseau
- • Rechercher les messages d'erreur CORS dans la Console
- • Vérifier les en-têtes CORS dans les En-têtes de Réponse
Outils Utiles
- • Testeur CORS (cet outil)
- • Postman (pour les tests API)
- • Commande curl (pour les tests directs du serveur)