En-têtes de sécurité HTTP (Security Headers) Cross-Origin Read Blocking (CORB)

CORB signifie "Cross-Origin Read Blocking" (Blocage de la Lecture Cross-Origin) et fait référence à une fonctionnalité de sécurité dans les navigateurs web qui vise à protéger contre les attaques d'exfiltration de données sensibles à partir de réponses cross-origin (origine croisée).

Lorsqu'un site web effectue une requête cross-origin pour récupérer des ressources telles que des images, des scripts, des feuilles de style ou des fichiers XMLHTTPRequests (XHR), les navigateurs peuvent permettre au site d'accéder aux données renvoyées par le serveur distant. Cependant, pour les types de contenu potentiellement sensibles tels que JSON, XML ou texte brut, le navigateur peut appliquer CORB pour bloquer l'accès aux données par des scripts JavaScript du site web demandeur.

Voici comment fonctionne CORB :

  • Requête Cross-Origin : Lorsqu'un site web effectue une requête vers une ressource cross-origin, le serveur distant répond avec une réponse HTTP contenant les données demandées.
  • Analyse de la Réponse : Avant de transmettre la réponse au script JavaScript du site web demandeur, le navigateur analyse le type de contenu de la réponse pour déterminer s'il s'agit d'un type de contenu sensible potentiellement vulnérable à l'exfiltration de données.
  • Blocage de la Lecture : Si la réponse est identifiée comme un type de contenu sensible, tels que JSON ou XML, le navigateur peut bloquer l'accès aux données renvoyées par le serveur distant. Au lieu de permettre au script JavaScript du site web de lire les données, le navigateur renvoie une réponse vide ou une erreur pour cette requête.
L'objectif de CORB est de protéger contre les attaques où un site web malveillant tente de récupérer des données sensibles (telles que des jetons d'authentification, des données de session, des informations personnelles, etc.) à partir de réponses cross-origin potentiellement vulnérables.

Bien que CORB offre une couche de protection supplémentaire contre les attaques d'exfiltration de données, il est important de noter qu'il ne remplace pas complètement les mécanismes de sécurité tels que CORS (Cross-Origin Resource Sharing) et d'autres bonnes pratiques de sécurité web. Il est toujours recommandé de mettre en œuvre des politiques de sécurité appropriées pour protéger les données sensibles et garantir la sécurité des applications web.

Quelles sont les risques ?

Le non-utilisation de CORB (Cross-Origin Read Blocking) expose les applications web à plusieurs risques potentiels liés à la sécurité et à la confidentialité des données des utilisateurs :

  • Exfiltration de données sensibles : Sans CORB, les sites web sont susceptibles de permettre l'accès aux données sensibles provenant de réponses cross-origin à des scripts JavaScript tiers. Cela peut permettre à des attaquants d'extraire des informations sensibles telles que des jetons d'authentification, des données de session, des informations personnelles, etc., en exploitant des vulnérabilités de type CORS (Cross-Origin Resource Sharing) ou d'autres mécanismes.
  • Vulnérabilités de sécurité : L'exposition de données sensibles à des tiers peut conduire à des vulnérabilités de sécurité, y compris les attaques telles que le vol d'identité, l'usurpation de session, le phishing, etc. Les données sensibles peuvent être utilisées par des attaquants pour compromettre la sécurité des utilisateurs ou des systèmes.
  • Violation de la confidentialité : La non-utilisation de CORB peut entraîner la divulgation involontaire de données sensibles des utilisateurs à des tiers non autorisés, ce qui compromet la confidentialité des informations personnelles et peut entraîner des conséquences négatives pour les utilisateurs et les entreprises.

Ne pas utiliser CORB expose les applications web à des risques de sécurité importants liés à l'exfiltration de données sensibles, à la violation de la confidentialité et à l'exploitation de vulnérabilités de sécurité. Il est donc essentiel de mettre en œuvre et de configurer correctement CORB pour protéger les données des utilisateurs et garantir la sécurité des applications web.