Aller au contenu principal
Security Headers Scanner
L'observatoire des en-têtes de
sécurité de vos sites internet
Analyses totales 15210
Score moyen 38,70
Sites analysés 2013
Meilleur score 155

En-têtes de sécurité HTTP

Comprendre simplement les principales protections utilisées par les sites web et les navigateurs modernes.

Que sont les en-têtes de sécurité HTTP ?

Quand vous ouvrez un site web, le serveur n’envoie pas seulement la page à afficher. Il peut aussi donner au navigateur des consignes de sécurité appelées en-têtes de sécurité HTTP. Ces règles servent à dire au navigateur ce qu’il doit autoriser, bloquer ou limiter pour mieux protéger le site et ses visiteurs.

Elles peuvent par exemple :

  • obliger le navigateur à utiliser une connexion HTTPS sécurisée ;
  • bloquer le chargement de scripts ou de contenus non autorisés ;
  • mieux protéger les cookies et les sessions utilisateur ;
  • empêcher qu’une page soit intégrée ou utilisée par un autre site sans autorisation ;
  • limiter les informations qu’un site peut transmettre à un autre.

Ces protections ne rendent pas un site invulnérable, mais elles ajoutent des barrières de sécurité supplémentaires entre le site, le navigateur et les contenus qu’il utilise. Elles peuvent empêcher certaines actions dangereuses, bloquer des comportements qui n’étaient pas prévus ou limiter les possibilités offertes à un attaquant. En cas de faille ou de mauvaise configuration, elles peuvent donc réduire fortement les conséquences d’une attaque et mieux protéger à la fois le site, ses données et les utilisateurs.

Pourquoi sont-ils importants ?

Un site peut fonctionner normalement même si plusieurs protections de sécurité sont absentes. Le problème apparaît surtout lorsqu’une faille, une mauvaise configuration ou une attaque est exploitée.

Dans ce cas, les conséquences peuvent toucher à la fois les visiteurs et le site lui-même. Cela peut aller du vol d’informations ou du détournement d’une session jusqu’à la compromission d’un compte, l’accès non autorisé à certaines données, l’affichage de contenus malveillants, la manipulation de l’utilisateur ou encore une fuite de données.

Certaines attaques peuvent par exemple chercher à :

  • tromper l’utilisateur en lui faisant cliquer sur un élément différent de celui qu’il pense voir (clickjacking). Une page légitime peut par exemple être masquée ou superposée par une autre interface invisible afin de provoquer un clic involontaire sur un bouton sensible, valider une action ou déclencher une opération sans que l’utilisateur ne voit réellement ce qu’il se passe ;
  • injecter du code malveillant dans une page légitime (XSS, ou Cross-Site Scripting). Ce code peut agir avec les droits de l’utilisateur, envoyer automatiquement des requêtes au site, tester certaines fonctions ou faiblesses, récupérer des informations accessibles à la session et parfois contribuer à une fuite de données ou à la compromission d’un compte ;
  • provoquer une action à l’insu d’un utilisateur déjà connecté (CSRF, ou Cross-Site Request Forgery), par exemple en déclenchant une requête ou une modification qu’il n’avait pas réellement souhaitée ;
  • récupérer des informations de session ou des données personnelles. Un attaquant peut par exemple tenter de voler un identifiant de session, des informations affichées dans l’espace utilisateur ou certaines données accessibles depuis le navigateur, ce qui peut permettre de prendre le contrôle d’un compte ou provoquer une fuite d’informations sensibles ;
  • intercepter ou modifier les échanges entre le navigateur et le site. Sur une connexion insuffisamment protégée, un attaquant peut tenter d’observer les informations transmises, de récupérer certaines données sensibles ou même d’altérer le contenu échangé, avec des risques de vol d’informations, détournement de session ou manipulation de l’utilisateur ;
  • faire communiquer le site avec une ressource externe qui ne devrait pas avoir accès à certaines données. Une mauvaise configuration peut par exemple permettre à un autre site ou à un service tiers de récupérer des informations qui ne lui étaient pas destinées, avec un risque de fuite de données, d’exposition d’informations sensibles ou d’utilisation abusive de certaines ressources ;
  • exploiter certaines fonctionnalités du navigateur comme la caméra, le microphone ou la géolocalisation lorsqu’elles sont mal encadrées.

Les en-têtes de sécurité ajoutent donc des barrières destinées à protéger à la fois le site et les personnes qui l’utilisent. Ils ne remplacent pas un site correctement développé et maintenu, mais ils peuvent empêcher certaines attaques ou en réduire fortement les conséquences.

En matière de sécurité, aucun détail ne doit être négligé.
Il ne faut pas sous-estimer la capacité des attaquants à exploiter le moindre oubli, défaut de configuration ou comportement inattendu. Une faiblesse qui peut sembler mineure peut parfois être combinée avec d’autres pour permettre une attaque beaucoup plus importante.

Les principaux en-têtes de sécurité HTTP

Découvrez les principales protections utilisées pour renforcer la sécurité d’un site web, de ses données et de ses utilisateurs.

Content-Security-Policy (CSP)

CSP permet au site d’indiquer au navigateur quels contenus il a le droit de charger ou d’exécuter. Cela concerne notamment les scripts JavaScript, les feuilles de style, les images, les polices ou les connexions vers des services externes.

On peut la voir comme une liste d’autorisation : le site précise ce qui est prévu et le navigateur peut bloquer ce qui provient d’un endroit non autorisé. Elle permet notamment de limiter les conséquences de certaines injections de contenu ou de code malveillant.

Set-Cookie (Sécurité des cookies)

Les cookies permettent notamment à un site de conserver une session, mémoriser une préférence ou reconnaître un utilisateur déjà connecté.

Des attributs comme Secure, HttpOnly et SameSite permettent de limiter leur exposition et de mieux protéger les cookies sensibles.

Referrer-Policy

Referrer-Policy contrôle les informations sur la page d’origine que le navigateur peut transmettre lorsqu’un utilisateur clique sur un lien ou charge une ressource externe.

Elle permet notamment d’éviter de transmettre inutilement l’adresse complète d’une page à un autre site. C’est principalement une protection liée à la confidentialité et à la maîtrise des informations partagées.

Strict-Transport-Security (HSTS)

HSTS indique au navigateur qu’il doit toujours utiliser une connexion HTTPS sécurisée pour accéder au site.

Une fois cette règle connue, le navigateur peut directement utiliser HTTPS au lieu de commencer par une connexion HTTP non chiffrée. Cela réduit les risques liés à cette transition.

Subresource Integrity (SRI)

SRI permet au navigateur de vérifier qu’un fichier externe n’a pas été modifié avant de l’utiliser. Il est surtout utilisé avec des scripts JavaScript et des feuilles de style chargés depuis un CDN ou un service tiers.

Le site indique à l’avance l’empreinte cryptographique attendue du fichier. Le navigateur calcule celle du fichier reçu et refuse de l’utiliser si les deux valeurs ne correspondent pas.

X-Content-Type-Options (CTO)

Cet en-tête demande au navigateur de respecter le type de fichier annoncé par le serveur au lieu d’essayer de deviner lui-même ce que contient le fichier.

Cela évite certaines interprétations inattendues : par exemple qu’un contenu soit considéré comme exécutable alors qu’il devait simplement être traité comme un fichier ordinaire.

X-Frame-Options (XFO)

X-Frame-Options permet de contrôler si une page peut être affichée à l’intérieur d’un autre site, par exemple dans une iframe.

Cette protection aide notamment à lutter contre le clickjacking, une technique qui cherche à tromper l’utilisateur sur l’élément qu’il clique réellement. Une CSP moderne peut également assurer cette protection avec la directive frame-ancestors.

Permissions-Policy

Permissions-Policy permet à un site de limiter l’utilisation de certaines fonctionnalités du navigateur, comme la caméra, le microphone ou la géolocalisation.

Le site peut désactiver les fonctions qu’il n’utilise pas et limiter les permissions accordées aux contenus externes. Le principe est de ne donner accès qu’aux capacités réellement nécessaires.

Cross-Origin-Resource-Sharing (CORS)

CORS permet à un serveur de préciser quels autres sites sont autorisés à accéder à certaines de ses ressources depuis le navigateur.

Il est particulièrement important pour les API et les applications réparties sur plusieurs domaines.

Cross-Origin-Resource-Policy (CORP)

CORP permet à un serveur d’indiquer dans quelles conditions d’autres sites peuvent utiliser ses ressources.

Une image, une police ou un autre fichier peut par exemple être réservé au site qui le fournit. Le navigateur peut alors bloquer certains usages provenant d’une autre origine.

Cross-Origin-Opener-Policy (COOP)

COOP permet de mieux isoler une page web des pages provenant d’autres sites ouvertes dans des fenêtres ou des onglets séparés.

Cette isolation réduit certaines interactions entre sites différents lorsqu’ils n’ont pas besoin de partager le même contexte de navigation.

Cross-Origin-Embedder-Policy (COEP)

COEP permet d’imposer des règles plus strictes aux ressources externes qu’une page souhaite intégrer.

Une image, une police, un script ou une autre ressource provenant d’un autre site peut devoir respecter certaines conditions. Dans le cas contraire, le navigateur peut refuser de la charger.

Votre site utilise-t-il ces protections ?

SHS peut analyser gratuitement les protections visibles sur votre site et vous aider à identifier celles qui sont présentes, absentes ou mal configurées.