CORS Checker - Trouver le contrôle qui bloque votre requête cross-origin | POLPROG Aller au contenu

CORS Checker

Trouver le contrôle qui bloque votre requête cross-origin

Un navigateur laisserait-il votre code lire cette réponse ? Et sinon, quel contrôle a dit non.

Outil web Web
Page officielle du produit Éditeur: POLPROG
Page officielle du produit
6
Étapes d'analyse
5
Onglets du rapport
10
Origines par analyse
0
Corps de requête envoyés
01CORS Checker

À propos

C'est le diagnostic d'une requête, pas un vidage d'en-têtes. Vous décrivez l'appel que fait votre code - le point de terminaison, l'origine sur laquelle il s'exécute, la méthode, les en-têtes qu'il pose, s'il envoie des identifiants - et l'outil dit si un navigateur vous laisserait lire la réponse, et quel contrôle précis en a décidé.

Ce qui se passe réellement pendant une analyse

  1. Préparer la requête exactement comme décrite.
  2. Classer la requête comme simple ou soumise à préambule, selon les règles du standard Fetch qu'applique un navigateur.
  3. Tester le préambule avec une vraie requête OPTIONS portant Origin, Access-Control-Request-Method et, si nécessaire, Access-Control-Request-Headers.
  4. Envoyer la vraie requête, car le préambule seul ne montre jamais les en-têtes CORS de la vraie réponse.
  5. Sonder la liste d'origines autorisées avec une requête supplémentaire portant une origine que le serveur n'a jamais vue.
  6. Construire le rapport : verdict, déroulé de la requête, en-têtes, constats et échange technique.

Le sondage de la liste d'autorisation

Un serveur qui répond à chaque origine par cette même origine paraît identique à une liste d'autorisation correctement configurée si vous ne testez jamais que la vôtre. Une requête depuis une origine que le serveur n'a jamais vue sépare les deux cas, et cela compte, car un serveur qui renvoie l'origine en écho, combiné à des identifiants, est exactement la configuration qui rend une réponse lisible par tous les sites que visite son utilisateur.

Les identifiants changent les règles

En-têteAvec identifiants
Access-Control-Allow-OriginPas d'astérisqueDoit nommer l'origine. Un astérisque est refusé net, même à côté d'Access-Control-Allow-Credentials: true.
Allow-Methods, Allow-Headers, Expose-HeadersLittéralUn astérisque cesse d'être un joker et se lit comme un nom littéral d'en-tête ou de méthode.
Access-Control-Allow-CredentialsObligatoireSa seule valeur acceptée est la chaîne exacte true, en minuscules.

Des constats, pas des adjectifs

Chaque constat porte une gravité, une catégorie, la phase dont il vient, la preuve sur laquelle il s'appuie, les en-têtes qu'il concerne et une recommandation. Les contrôles réussis sont listés aussi, si bien qu'un résultat propre est visible et pas seulement vide. Deux règles que suivent les recommandations, car le conseil évident est souvent le mauvais : rien ici ne vous dit d'ouvrir une méthode, un en-tête ou une origine juste pour faire disparaître un encadré rouge - un DELETE bloqué peut être un point de terminaison correctement verrouillé - et rien ici ne suggère jamais de renvoyer en écho une origine arbitraire. La réponse est une liste d'autorisation, à chaque fois.

Ce qu'il ne prétend pas

CORS décide quelles origines peuvent lire une réponse à l'intérieur d'un navigateur. Ce n'est pas de l'authentification, cela n'accorde aucune permission, et cela n'arrête pas la falsification de requête inter-sites, car une attaque CSRF n'a jamais besoin de lire la réponse. Tout client qui n'est pas un navigateur l'ignore entièrement. Cet outil le dit explicitement, plutôt que de laisser un verdict vert suggérer que votre point de terminaison est protégé.

02Usage

Ce que cela résout

Le problème
  • Cela marche en curl et Postman, et échoue dans le navigateur
  • La console dit bloqué par la politique CORS, et guère plus
  • Le préambule échoue, le point de terminaison ne voit jamais la requête et les journaux restent vides
Le résultat
  • Le contrôle exact qui arrête le navigateur, nommé
  • Un vrai préambule et une vraie requête, tous deux réellement envoyés
  • Un correctif qui ne consiste pas à ouvrir le point de terminaison
Pour qui
  • Les développeuses et développeurs front dont l'appel fetch est bloqué
  • Les équipes d'API qui configurent CORS sur plusieurs environnements
  • Toute personne qui débogue un préambule qu'elle n'a pas écrit
03Fonctionnalités clés

Fonctionnalités clés

Les fonctions essentielles expliquées de manière concrète.

Un verdict sur une requête précise

Autorisée ou bloquée, pour exactement la méthode, les en-têtes, l'origine et le mode d'identifiants que vous décrivez, avec le contrôle qui en a décidé, nommé. Pas une liste d'en-têtes laissée à votre interprétation.

Un vrai préambule et une vraie requête

Six étapes, chacune rapportée dès qu'elle est arrêtée. Le préambule OPTIONS part comme un navigateur l'enverrait, puis vient la vraie requête, car le préambule seul ne montre jamais les en-têtes CORS de la vraie réponse.

Simple ou soumise à préambule, tranché correctement

Une requête n'est simple que si la méthode est GET, HEAD ou POST et que chaque en-tête figure sur la liste sûre CORS, Content-Type se limitant à trois valeurs. L'outil applique la règle au lieu de deviner, et c'est en général de là que vient la requête OPTIONS inattendue.

Le sondage de la liste d'origines autorisées

Une requête supplémentaire portant une origine que le serveur n'a jamais vue sépare une vraie liste d'autorisation d'un serveur qui renvoie en écho tout ce qu'il reçoit. Ces deux cas paraissent identiques si vous ne testez que votre propre origine.

Les requêtes avec identifiants jugées par leurs propres règles

Une origine en joker devient invalide, et les astérisques dans Allow-Methods, Allow-Headers et Expose-Headers cessent d'être des jokers et se lisent comme des noms littéraux. L'analyse applique le jeu de règles le plus strict, pas le plus courant.

Les redirections revérifiées à chaque saut

Un navigateur recommence son contrôle CORS à chaque redirection, chaque saut est donc réévalué avant d'être suivi. Une chaîne qui finit dans un endroit permissif peut malgré tout être bloquée en chemin.

Plusieurs origines en une seule analyse

Jusqu'à dix origines supplémentaires testées contre le même point de terminaison et présentées en tableau, le moyen le plus rapide de confirmer que le local, la préproduction et la production sont toutes sur la liste d'autorisation, et rien de plus.

Des constats avec preuve et recommandation

Chacun porte une gravité, une catégorie, la phase dont il vient, la preuve qui le fonde et les en-têtes qu'il concerne, à côté des contrôles réussis. Aucune recommandation ne vous dit d'ouvrir une méthode, un en-tête ou une origine juste pour faire disparaître un avertissement.

04Télécharger

Accès au produit

Un parcours clair de la source officielle à votre première utilisation réussie.

Choisir la bonne plateforme

Utilisez l'un des liens officiels disponibles pour votre appareil ou votre navigateur.

Installer ou ouvrir

Suivez les instructions de la boutique ou ouvrez l'application web. Aucun programme d'installation tiers.

Configurer et commencer

Consultez les options, choisissez vos préférences et commencez par le flux principal.

Options d'accès officielles
05Technologie

Technologies du produit

Une vue transparente des technologies principales utilisées pour créer et maintenir ce produit.

PHP
JavaScript
06Sécurité

Confidentialité et sécurité

Vos données restent sur votre appareil. Toujours.

Sans compte, sans inscription
Aucun de vos cookies n'est transmis
Aucun corps de requête n'est jamais envoyé
Rien n'est conservé une fois le rapport arrivé