Vérificateur CORS
Vérifiez la configuration du partage de ressources cross-origin (CORS) pour n'importe quelle URL. Inspectez les en-têtes de réponse Access-Control-*, exécutez une requête de pré-vérification (OPTIONS) facultative avec un Origin/méthode/en-têtes personnalisés, et détectez les mauvaises configurations courantes telles que le caractère générique + credentials, l'absence de Vary: Origin, ou des allow-headers trop permissifs.
Fonctionnalités
- Inspection des en-têtes CORS pour toute URL publique (Access-Control-* et en-têtes associés).
- Simulation de pré-vérification facultative (OPTIONS) avec Origin, méthode de requête et en-têtes de requête personnalisés.
- Suivi des redirections (jusqu'à 10) pour valider le point de terminaison final que les navigateurs atteignent réellement.
- Vue des en-têtes bruts pour une transparence et un débogage complets.
- Découvertes + tableau de score avec filtrage "problèmes uniquement" pour un triage rapide.
- Analyse Vary pour détecter l'absence de Vary: Origin et d'autres pièges CORS liés au cache.
- Export des résultats en rapports JSON et PDF pour audits, tickets et documentation.
- Recommandations intégrées pour les problèmes courants : caractère générique+credentials, réflexion de l'Origin, Origin null, absence d'allow-methods/allow-headers, absence de max-age, et allow-headers trop permissifs.
🧭 Comment utiliser for cors-checker
Saisissez l'URL cible
Collez le point de terminaison que vous souhaitez tester (par exemple, https://api.example.com/resource).
Définissez l'Origin depuis lequel vous testez
Saisissez l'Origin de votre application frontend (schéma + hôte), par exemple, https://app.example.com. C'est la valeur que les navigateurs envoient dans l'en-tête Origin.
Choisissez un mode de vérification
Utilisez Auto (recommandé) pour analyser à la fois les en-têtes de réponse et le comportement de pré-vérification. Utilisez Simple request si vous voulez spécifiquement un scénario sans pré-vérification, ou Preflight only pour exécuter des vérifications OPTIONS.
Configurez les détails de la pré-vérification (le cas échéant)
Activez "Exécuter la pré-vérification (OPTIONS)" et définissez la Méthode de requête ainsi que les En-têtes de requête (séparés par des virgules) pour simuler le comportement réel de pré-vérification du navigateur (par exemple, authorization, content-type). Activez "Considérer les credentials" si votre cas d'utilisation inclut des cookies ou des en-têtes d'authentification.
Examinez les découvertes et exportez
Consultez les découvertes/tableau de score et les détails de l'analyse CORS. Activez "Afficher les en-têtes bruts" lors du débogage. Exportez en JSON/PDF pour partager ou stocker dans des audits.
Spécifications techniques
Modèle de requête
L'outil inspecte les en-têtes CORS pour une URL cible et peut éventuellement effectuer une requête de pré-vérification (OPTIONS) en utilisant l'Origin, la méthode et les en-têtes demandés fournis. Le suivi des redirections est pris en charge.
| Paramètre | Comportement | Par défaut |
|---|---|---|
| Mode de vérification | Auto, Simple request, ou Preflight uniquement | Auto |
| Exécuter Preflight (OPTIONS) | Si activé, effectue une simulation de pré-vérification OPTIONS | Activé |
| Origine | Valeur de l'en-tête Origin utilisée pour l'analyse/la pré-vérification | https://example.com |
| Méthode de requête | Valeur Access-Control-Request-Method pour la pré-vérification | GET |
| En-têtes de requête | Access-Control-Request-Headers (séparés par des virgules) pour la pré-vérification | Vide |
| Suivre les redirections | Suit la chaîne de redirections jusqu'à l'URL finale | Activé |
| Redirections max | Limite de redirections pour éviter les boucles | 10 (plage 0–20) |
| Délai d'attente | Limite de délai d'attente de la requête | 15000 ms |
| User-Agent | Identifie l'agent utilisateur de la requête | Encode64Bot/1.0 (+https://encode64.com) |
| Réseaux privés | Bloque l'accès aux plages de réseaux privés pour la sécurité | Désactivé (réseaux privés non autorisés) |
En-têtes analysés (ensemble CORS principal)
L'analyseur se concentre sur les en-têtes de réponse et de requête CORS standard utilisés par les navigateurs et les vérifications de pré-vérification.
| En-tête | Objectif |
|---|---|
| Access-Control-Allow-Origin | Quelle(s) Origine(s) sont autorisées |
| Access-Control-Allow-Credentials | Indique si les cookies/identifiants sont autorisés (nécessite une origine non générique) |
| Access-Control-Allow-Methods | Méthodes autorisées pour les requêtes cross-origin (important pour la pré-vérification) |
| Access-Control-Allow-Headers | En-têtes autorisés (important pour Authorization et les en-têtes personnalisés) |
| Access-Control-Expose-Headers | Quels en-têtes sont lisibles par le JS du navigateur |
| Access-Control-Max-Age | Durée pendant laquelle la pré-vérification peut être mise en cache par le navigateur |
| Vary | Variation de la clé de cache (ex : Vary: Origin) pour éviter l'empoisonnement/mélange du cache |
| Origin / Access-Control-Request-* | Utilisé pour simuler le comportement de pré-vérification |
Heuristiques (pièges CORS courants signalés)
Les résultats sont basés sur des vérifications pratiques et axées sur la sécurité pour détecter des configurations CORS cassées ou risquées.
| Vérification | Pourquoi c'est important |
|---|---|
| Joker + identifiants | Access-Control-Allow-Origin: * ne peut pas être utilisé avec des identifiants ; les navigateurs bloqueront ou le comportement est dangereux |
| Vary: Origin manquant | Si les réponses varient par Origin mais ne sont pas correctement mises en cache, les caches partagés peuvent mélanger les réponses entre sites |
| Réflexion de l'Origine | Renvoyer aveuglément l'Origine peut permettre involontairement à des origines non fiables |
| Avertissements sur l'Origine nulle | Origin: null peut apparaître dans des iframes en bac à sable ou des contextes de fichier ; l'autoriser est souvent risqué |
| Allow-Methods / Allow-Headers manquants | La pré-vérification peut échouer si le serveur n'autorise pas explicitement la méthode/les en-têtes |
| Allow-Headers trop permissifs | Autoriser trop d'en-têtes peut augmenter la surface d'attaque |
| Max-Age manquant | La pré-vérification peut s'exécuter trop fréquemment, ajoutant de la latence |
Ligne de commande
Utilisez ces commandes pour reproduire le comportement CORS et de pré-vérification depuis votre terminal. Elles sont utiles pour le débogage et la vérification de ce que l'outil rapporte.
macOS / Linux
Vérifier les en-têtes CORS pour une requête normale (simuler une Origin de navigateur)
curl -i -H "Origin: https://example.com" https://api.example.com/resourceRecherchez Access-Control-Allow-Origin, Access-Control-Allow-Credentials, et Vary.
Exécuter une requête OPTIONS de pré-vérification (méthode + en-têtes)
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/privateLa pré-vérification doit renvoyer les Access-Control-Allow-Methods et Access-Control-Allow-Headers corrects pour que le navigateur puisse continuer.
Suivre les redirections tout en vérifiant les en-têtes
curl -iL -H "Origin: https://example.com" https://api.example.comUtile lorsque les points de terminaison redirigent vers un hôte différent ayant des règles CORS différentes.
Windows (PowerShell)
Inspecter les en-têtes de réponse avec un en-tête Origin
$r = Invoke-WebRequest -Uri https://api.example.com/resource -Headers @{ Origin = "https://example.com" }; $r.HeadersAffiche les en-têtes Access-Control-* s'ils sont présents.
Cas d'utilisation
Déboguer une erreur de navigateur "CORS bloqué" dans le frontend
Lorsqu'un fetch/XHR échoue avec une erreur CORS, vérifiez si le serveur renvoie les en-têtes Access-Control-* requis pour votre origine et votre type de requête.
- Confirmer qu'Access-Control-Allow-Origin correspond à l'origine de votre application
- Si vous utilisez des cookies/authentification, vérifiez qu'Access-Control-Allow-Credentials est true (et que l'origine n'est pas un caractère générique)
- S'assurer que Vary: Origin est présent lors de l'autorisation de plusieurs origines
Valider la pré-vérification pour les en-têtes Authorization / personnalisés
La plupart des appels API authentifiés déclenchent une pré-vérification en raison de l'en-tête Authorization ou de types de contenu non simples. Cet outil aide à s'assurer que les réponses OPTIONS autorisent la méthode et les en-têtes requis.
- Vérifier qu'Access-Control-Allow-Methods inclut POST/PUT/PATCH/DELETE selon les besoins
- Vérifier qu'Access-Control-Allow-Headers inclut authorization, content-type et les en-têtes X-* requis
- Détecter les allow-methods/allow-headers manquants avant le déploiement
Revue de sécurité de la politique CORS
Les mauvaises configurations CORS peuvent exposer involontairement des API privées à des sites malveillants (surtout avec des identifiants). Utilisez les résultats pour détecter les modèles à haut risque.
- Détecter une origine générique combinée à des identifiants
- Détecter des modèles d'origine réfléchissants qui autorisent des sites arbitraires
- Signaler l'autorisation d'Origin: null lorsqu'elle n'est pas intentionnelle
Améliorer les performances en mettant en cache la pré-vérification
Les requêtes de pré-vérification ajoutent des allers-retours et de la latence. Un Max-Age correct peut réduire les vérifications de pré-vérification répétées pour les API stables.
- Vérifier qu'Access-Control-Max-Age est présent lorsque c'est approprié
- Réduire les appels OPTIONS répétés pour un trafic API fréquent
❓ Frequently Asked Questions
❓Qu'est-ce que le CORS en termes simples ?
CORS (Cross-Origin Resource Sharing) est un mécanisme de sécurité des navigateurs qui contrôle si une page web d'une origine (schéma + hôte + port) peut lire les réponses d'une autre origine. Il repose sur des en-têtes de réponse spécifiques Access-Control-*.❓Quand un navigateur envoie-t-il une requête de pré-vérification (OPTIONS) ?
❓Pourquoi "Access-Control-Allow-Origin: *" est-il dangereux avec des identifiants ?
❓Pourquoi ai-je besoin de Vary: Origin ?
❓Le CORS peut-il protéger mon API des clients non-navigateurs ?
CORS est appliqué par les navigateurs. Les scripts exécutés en dehors d'un navigateur (serveurs, curl, applications mobiles) peuvent appeler votre API indépendamment du CORS. Utilisez l'authentification, l'autorisation et la limitation du débit pour un véritable contrôle d'accès.❓Que dois-je mettre dans "En-têtes de requête" lors du test du pré-vol ?
❓Est-il sûr de coller des URL ici ?
Pro Tips
Privilégiez une liste d'autorisation d'origines de confiance plutôt que de refléter n'importe quelle origine. Traitez le CORS comme une configuration sensible pour la sécurité.
Si vous utilisez des cookies/auth, définissez Access-Control-Allow-Credentials: true ET renvoyez une origine explicite (pas "*").
Ajoutez Vary: Origin lorsque vous autorisez plusieurs origines ou sélectionnez dynamiquement l'origine autorisée.
Ajoutez une valeur Access-Control-Max-Age raisonnable pour réduire la latence du pré-vol pour les API stables.
Testez à la fois le chemin de pré-vol et la requête réelle ; certaines configurations renvoient des en-têtes corrects pour GET mais échouent pour OPTIONS.
Exportez des rapports JSON et conservez-les avec les modifications de configuration de la passerelle API pour détecter rapidement les régressions.
Additional Resources
Other Tools
- Formateur CSS
- Formateur HTML
- Formateur JavaScript
- Formateur PHP
- Sélecteur de couleurs
- Extracteur de sprites
- Encodeur binaire Base32
- Décodeur Base32
- Encodeur Base32
- Encodeur binaire Base58
- Décodeur Base58
- Encodeur Base58
- Encodeur binaire Base62
- Décodeur Base62
- Encodeur Base62
- Encodeur binaire Base64
- Décodeur Base64
- Encodeur Base64
- Encodeur binaire Hexadécimal
- Décodeur Hexadécimal
- Encodeur Hexadécimal
- Formateur C#
- Formateur CSV
- Dockerfile Formatter
- Formateur Elm
- Formateur ENV
- Formateur Go
- Formateur GraphQL
- Formateur HCL
- Formateur INI
- Formateur JSON
- Formateur LaTeX
- Formateur Markdown
- Formateur Objective-C
- Php Formatter
- Formateur Proto
- Formateur Python
- Formateur Ruby
- Formateur Rust
- Formateur Scala
- Formateur de scripts Shell
- Formateur SQL
- Formateur SVG
- Formateur Swift
- Formateur TOML
- Typescript Formatter
- Formateur XML
- Formateur YAML
- Formateur Yarn
- Minifieur CSS
- Html Minifier
- Javascript Minifier
- Minifieur JSON
- Minifieur XML
- Cache Headers Analyzer
- Csp Analyzer
- Dns Records Lookup
- Visualiseur d’en-têtes 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 vers texte
- Testeur d’expressions régulières
- Vérificateur de classement SERP
- Recherche WHOIS