Qu'est-ce qu'un vérificateur d'en-tête CORS ?
Le partage de ressources cross-origine (CORS) est un mécanisme de sécurité du navigateur qui contrôle la manière dont les pages Web d'un domaine peuvent demander des ressources à un autre domaine. Lorsqu'une application frontale sur https://myapp.com tente de récupérer des données depuis https://api.example.com, le navigateur vérifie les en-têtes CORS du serveur pour déterminer si la demande est autorisée. Un vérificateur d'en-tête CORS analyse les en-têtes de réponse d'un serveur API et évalue s'ils autorisent correctement les requêtes d'origine croisée à partir de votre origine spécifiée, de votre méthode HTTP et de vos en-têtes personnalisés. Il identifie les erreurs de configuration courantes telles que les en-têtes Access-Control-Allow-Origin manquants, les origines génériques combinées aux informations d'identification et les méthodes ou en-têtes non autorisés.
Comment utiliser le vérificateur d'en-tête CORS
- 1Saisissez votre application frontend's origin (e.g., 'https://myapp.com') dans le champ Request Origin.
- 2Sélectionnez la méthode HTTP utilisée par votre application pour effectuer la demande d'origine croisée.
- 3Collez les en-têtes de réponse de votre serveur API dans la zone de texte En-têtes de réponse. Saisissez un en-tête par ligne au format 'Key: Value'.
- 4Consultez les résultats de l’analyse ci-dessous. Les coches vertes indiquent la réussite des contrôles, les avertissements jaunes suggèrent des problèmes potentiels et les croix rouges indiquent des problèmes de blocage.
Cas d'utilisation courants
Débogage des erreurs CORS
Lorsque la console de votre navigateur affiche 'Access to fetch has been blocked by CORS policy', collez les en-têtes de réponse ici pour identifier rapidement ce qui manque ou est mal configuré.
Validation de la configuration du serveur
Avant de déployer les modifications de l'API, vérifiez que vos en-têtes CORS autorisent correctement les origines, méthodes et en-têtes personnalisés attendus sans être trop permissifs.
Examen de sécurité
Auditez la configuration CORS de votre API pour vous assurer qu'elle respecte les meilleures pratiques de sécurité : pas d'origines génériques avec des informations d'identification, une mise en cache de contrôle en amont appropriée et un nombre minimal d'en-têtes autorisés.
Enseignement et apprentissage CORS
Comprenez comment différentes combinaisons d'en-têtes CORS affectent le comportement du navigateur en expérimentant diverses configurations et en voyant les résultats de l'analyse en temps réel.
Questions fréquentes
Qu’est-ce qu’une demande de contrôle en amont CORS ?
Une demande de contrôle en amont est une demande OPTIONS automatique envoyée par le navigateur avant la demande réelle lors de l'utilisation de méthodes non simples (PUT, PATCH, DELETE), d'en-têtes personnalisés ou de certains types de contenu. Le serveur doit répondre avec les en-têtes Access-Control-Allow-* appropriés. L'en-tête Access-Control-Max-Age contrôle la durée pendant laquelle le navigateur met en cache les résultats du contrôle en amont.
Pourquoi ne puis-je pas utiliser Access-Control-Allow-Origin: * avec les informations d'identification ?
Lorsqu'une requête inclut des informations d'identification (cookies ou authentification HTTP), le navigateur demande au serveur de répondre avec l'origine exacte dans Access-Control-Allow-Origin, et non avec le caractère générique *. Cela empêche tout site Web de faire des requêtes authentifiées à votre API. Vous devez renvoyer l’origine spécifique de la demande.
Quels sont les 'simple requests' qui ne nécessitent pas de contrôle en amont ?
Les requêtes simples utilisent les méthodes GET, HEAD ou POST avec uniquement des en-têtes standard (Accept, Accept-Language, Content-Language, Content-Type avec les valeurs application/x-www-form-urlencoded, multipart/form-data ou text/plain). Toute autre combinaison déclenche une demande OPTIONS de contrôle en amont.
Cet outil envoie-t-il des requêtes réelles pour tester CORS ?
Non, cet outil effectue une analyse purement hors ligne. Vous collez les en-têtes de réponse et il les évalue par rapport à votre origine et à votre méthode spécifiées. Pour obtenir les en-têtes de réponse réels, vous pouvez utiliser l'onglet Réseau DevTools du navigateur, curl avec l'indicateur -I ou n'importe quel client HTTP.