Configurer les En-tetes CORS

Générez des configurations Cross-Origin Resource Sharing pour Express.js, Nginx, Apache, Fetch API, Spring Boot, Django et Laravel.

Créez et configurez des en-tetes CORS visuellement avec un éditeur interactif. Définissez les origines autorisées, les méthodes, les en-tetes, les identifiants et la durée maximale; puis exportez des configurations pretes à l'emploi pour Express.js, Nginx, Apache, Fetch API, Spring Boot, Django et Laravel. Tout le traitément se fait dans votre navigateur.

Loading...
Vos données restent dans votre navigateur
Cet outil vous a-t-il été utile ?
Tutoriel

Comment configurer les en-tetes CORS

1
1

Definir les origines autorisées

Specifiez quels domaines peuvent acceder à votre API en ajoutant des URL d'origine ou en utilisant un joker pour un accès ouvert.

2
2

Selectionner les méthodes et en-tetes

Choisissez quelles méthodes HTTP comme GET, POST ou PUT sont autorisées, et définissez les en-tetes personnalises acceptes par votre API.

3
3

Exporter la configuration

Basculez entre les onglets de sortie pour copier la configuration CORS pour votre framework serveur ou proxy inverse.

Guide

Guide complet de la configuration CORS

Pourquoi CORS existe dans le navigateur

Les navigateurs appliquent la politique de même origine pour empêcher les sites malveillants de lire des données sensibles d'autres domaines. CORS assouplit cette restriction de manière contrôlée en permettant aux serveurs de déclarer quelles origines, méthodes et en-tetes sont autorises. Sans en-tetes CORS, toute requête fetch ou XMLHttpRequest cross-origin sera bloquee, même si le serveur a traité la requête avec succès.

Comprendre les en-tetes CORS

L'en-tete Access-Control-Allow-Origin spécifié les origines de confiance. Access-Control-Allow-Methods liste les méthodes HTTP autorisées comme GET, POST et DELETE. Access-Control-Allow-Headers declare quels en-tetes de requête personnalises sont acceptes. Access-Control-Expose-Headers contrôle quels en-tetes de réponse le navigateur peut lire, et Access-Control-Max-Age met en cache les résultats preflight pour réduire la latence.

Requêtes simples vs preflight

Les requêtes simples utilisent GET, HEAD ou POST avec des types de contenu standard et sautent l'étape preflight. Toute requête utilisant d'autres méthodes, des en-tetes personnalises ou des types de contenu non standard declenche un appel OPTIONS preflight. Le serveur doit répondre au preflight avec les bons en-tetes CORS avant que le navigateur n'envoie la requête reelle.

Pieges courants et bonnes pratiques

Évitez d'utiliser des origines joker en production; etablissez une liste blanche de domaines spécifiques. Ne combinez jamais des origines joker avec des identifiants car les navigateurs rejetteront la réponse. Définissez un Max Age raisonnable pour réduire la surcharge preflight sans mettre en cache des politiques obsoletes. Testez toujours CORS depuis l'origine reelle du client.

Examples

Exemples de configuration CORS

API Express.js pour une app React

Une SPA React a https://app.example.com doit appeler une API Express a https://api.example.com avec des tokens JWT.

1

Definir l'origine autorisée a https://app.example.com

2

Activer les méthodes GET, POST, PUT, DELETE

3

Ajouter Authorization aux en-tetes autorises

4

Activer les identifiants

Access-Control-Allow-Origin: https://app.example.com; Access-Control-Allow-Methods: GET, POST, PUT, DELETE; Access-Control-Allow-Headers: Authorization; Access-Control-Allow-Credentials: true

Proxy inverse Nginx pour API publique

Une API REST publique derrière Nginx qui accepte les requêtes JSON depuis toute origine.

1

Definir l'origine autorisée a *

2

Activer les méthodes GET, POST, OPTIONS

3

Ajouter Content-Type aux en-tetes autorises

4

Definir la durée maximale a 86400 secondes

Access-Control-Allow-Origin: *; Access-Control-Allow-Methods: GET, POST, OPTIONS; Access-Control-Allow-Headers: Content-Type; Access-Control-Max-Age: 86400

Cas d'utilisation

Cas d'utilisation CORS

API REST publique

Définissez les origines autorisées sur joker (*) et activez les méthodes GET et POST pour une API publique. Cela permet à toute application frontend de consommer vos endpoints sans restrictions, ideal pour les services de données ouvertes et les APIs de documentation publique.

Backend pour application SPA

Restreignez les origines autorisées au domaine de votre SPA et activez les identifiants pour l'authentification par cookies. Cela garantit que seul votre frontend peut appeler l'API tout en maintenant l'état de session dans les requêtes cross-origin de manière sécurisée.

Passerelle de microservices

Configurez plusieurs origines autorisées pour les services internes derrière un proxy inverse. Définissez des méthodes spécifiques et des en-tetes exposes pour que chaque microservice puisse communiquer via la passerelle en bloquant les origines externes non autorisées.

Questions fréquemment posées

?Qu'est-ce que CORS?

CORS est un mécanisme de sécurité du navigateur qui contrôle quels domaines externes peuvent acceder aux ressources de votre serveur via des en-tetes HTTP.

?Pourquoi ai-je des erreurs CORS?

Les navigateurs bloquent les requêtes cross-origin par défaut. Vous devez configurer votre serveur pour envoyer les bons en-tetes Access-Control-Allow.

?Puis-je utiliser le joker (*) avec les identifiants?

Non. Les navigateurs rejettent les réponses combinant Access-Control-Allow-Origin: * avec des identifiants. Vous devez specifier des origines exactes.

?Qu'est-ce qu'une requête preflight?

Un preflight est une requête OPTIONS envoyée par le navigateur avant certains appels cross-origin pour vérifier si le serveur autorise la requête reelle.

?Que contrôle Max Age?

Max Age indique aux navigateurs combien de temps mettre en cache les réponses preflight en secondes, reduisant les requêtes OPTIONS repetees au même endpoint.

?Mes données sont-elles privées?

Oui. Tout s'exécuté localement dans votre navigateur. Aucune donnée n'est envoyée à un serveur. Votre configuration CORS ne quitte jamais votre machine.

?Cet outil est-il gratuit?

Oui. Entièrement gratuit sans limites, sans inscription requise. Générez autant de configurations que nécessaire sans aucune restriction.

Aidez-nous à améliorer

Aimez-vous cet outil ?

Chaque outil Kitmul est construit à partir de vraies demandes d'utilisateurs. Votre note et vos suggestions nous aident à corriger des bugs, ajouter des fonctionnalités manquantes et créer les outils dont vous avez vraiment besoin.

Notez cet outil

Cliquez sur une étoile pour nous dire si cet outil vous a été utile.

Suggérez une amélioration ou signalez un bug

Une fonctionnalité manque ? Vous avez trouvé un bug ? Une idée ? Dites-le-nous et nous l'examinerons.

Outils associés

Lectures Recommandées

Livres recommandés sur la sécurité web et CORS

En tant que partenaire Amazon, nous percevons une commission sur les achats qualifiés.

Boostez vos Compétences

Outils de sécurité pour développeurs web

En tant que partenaire Amazon, nous percevons une commission sur les achats qualifiés.

Newsletter

Recevez des Conseils Productivité et les Nouveaux Outils en Premier

Rejoignez les créateurs et développeurs qui valorisent la confidentialité. Chaque édition : nouveaux outils, astuces productivité et mises à jour — sans spam.

Accès prioritaire aux nouveaux outils
Désabonnez-vous à tout moment, sans questions