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 →