Urgent : faille PHP critique. Comment vérifier →

Ajouter les en-têtes de sécurité HTTP manquants à votre site web

Les en-têtes de sécurité sont des en-têtes de réponse HTTP qui indiquent aux navigateurs comment se comporter avec le contenu de votre site : ils empêchent le clickjacking, le MIME sniffing, les attaques cross-origin et les fuites d'informations. La plupart tiennent en une seule ligne de configuration. Voici le rôle de chacun et comment l'ajouter.

Les en-têtes, leur rôle et les valeurs à utiliser

X-Content-Type-Options

Rôle : empêche les navigateurs de deviner (MIME sniffing) un type de contenu différent de celui déclaré. Bloque certaines attaques dans lesquelles un fichier est téléversé sous un type mais exécuté sous un autre.

X-Content-Type-Options: nosniff

C'est la seule valeur valide. Utilisez toujours nosniff.

Referrer-Policy

Rôle : contrôle la quantité d'informations de provenance (referrer) transmises lorsqu'un utilisateur quitte votre site pour un autre. Sans cet en-tête, l'URL complète (y compris les chemins et les paramètres contenant des données sensibles) peut fuiter.

Referrer-Policy: strict-origin-when-cross-origin

Cette valeur envoie l'URL complète comme provenance pour les requêtes de même origine, et seulement l'origine (sans chemin) pour les requêtes vers d'autres origines.

Permissions-Policy

Rôle : contrôle les fonctions et API du navigateur que votre page a le droit d'utiliser (caméra, microphone, géolocalisation, etc.). Empêche des scripts malveillants injectés d'accéder à des fonctions que vous n'utilisez pas.

Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=()

N'indiquez que les fonctions que votre site utilise réellement. Une valeur vide () interdit totalement l'accès.

X-Frame-Options

Rôle : empêche l'intégration de votre page dans une iframe sur un autre site (défense contre le clickjacking).

X-Frame-Options: DENY

Ou, si vous devez autoriser l'intégration sur votre propre domaine :

X-Frame-Options: SAMEORIGIN

Remarque : si vous avez un en-tête Content-Security-Policy avec une directive frame-ancestors, celle-ci prévaut sur X-Frame-Options dans les navigateurs modernes.

Cross-Origin-Opener-Policy (COOP)

Rôle : empêche d'autres sites d'accéder à votre objet window lorsqu'ils ouvrent votre page, ce qui protège contre les attaques cross-origin.

Cross-Origin-Opener-Policy: same-origin

Ajouter les en-têtes selon votre plateforme

Cloudflare (Transform Rules)

Security → Transform Rules → Modify Response Header → Add new rule → ajoutez chaque en-tête sous forme d'action Set.

Nginx

add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
add_header X-Frame-Options "DENY" always;
add_header Cross-Origin-Opener-Policy "same-origin" always;

Apache

Header always set X-Content-Type-Options "nosniff"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Permissions-Policy "camera=(), microphone=(), geolocation=()"
Header always set X-Frame-Options "DENY"
Header always set Cross-Origin-Opener-Policy "same-origin"

Vercel (vercel.json)

{
  "headers": [
    {
      "source": "/(.*)",
      "headers": [
        { "key": "X-Content-Type-Options", "value": "nosniff" },
        { "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" },
        { "key": "Permissions-Policy", "value": "camera=(), microphone=(), geolocation=()" },
        { "key": "X-Frame-Options", "value": "DENY" },
        { "key": "Cross-Origin-Opener-Policy", "value": "same-origin" }
      ]
    }
  ]
}

Netlify (netlify.toml)

[[headers]]
  for = "/*"
  [headers.values]
    X-Content-Type-Options = "nosniff"
    Referrer-Policy = "strict-origin-when-cross-origin"
    Permissions-Policy = "camera=(), microphone=(), geolocation=()"
    X-Frame-Options = "DENY"
    Cross-Origin-Opener-Policy = "same-origin"

Vérifier que cela fonctionne

Analysez votre domaine sur mydomainrisk.com : la fiche En-têtes de sécurité indiquera le statut réussi/échoué de chaque en-tête, et votre score sera mis à jour pour refléter les corrections.

Vérifiez vos en-têtes de sécurité

MyDomainRisk vérifie les en-têtes de sécurité courants et explique précisément ce qui manque, gratuitement.

Analyser un domaine gratuitement →