
Votre site WordPress peut être sécurisé de nombreuses manières, mots de passe forts, bon hébergement, extensions à jour. Mais il existe une couche de protection souvent négligée : les en-têtes HTTP de sécurité.
Ce sont de petites instructions que votre serveur envoie au navigateur. Elles indiquent au navigateur comment se comporter lors du chargement de votre site. Correctement implémentées, elles peuvent prévenir des attaques comme les Cross-Site Scripting (XSS), le clickjacking et la divulgation d’informations.
La meilleure partie ? Elles sont relativement faciles à ajouter à WordPress. Ce guide couvre les en-têtes les plus importants, pourquoi ils comptent et comment les implémenter.
Lorsqu’un navigateur demande votre site WordPress, votre serveur répond avec le contenu de la page plus un ensemble d’en-têtes HTTP. Les en-têtes de sécurité indiquent au navigateur des choses comme :
Sans ces en-têtes, les navigateurs adoptent des comportements par défaut moins sécurisés. Les ajouter ne coûte presque rien et renforce considérablement votre site.
Voici les en-têtes que tout site WordPress devrait considérer, des plus critiques aux plus optionnels.
Prévient : Le clickjacking (cacher des liens malveillants sous des éléments d’interface trompeurs)
Cet en-têteLa section supérieure d'un site web, contenant généraleme... More empêche d’autres sites d’intégrer votre site dans un iframe. À moins que vous n’ayez explicitement besoin que votre site soit intégrable (par exemple pour un widgetUn petit bloc qui ajoute un contenu ou une fonctionnalité s... More), verrouillez-le.
Valeur recommandée :
X-Frame-Options: DENY
Prévient : Le reniflage de type MIME (les navigateurs devinent les types de fichiers, ce qui peut transformer des images en code exécutable)
Cet en-têteLa section supérieure d'un site web, contenant généraleme... More indique au navigateur : « Ne devinez pas le type de fichier. Utilisez exactement ce que j’ai indiqué. »
Valeur recommandée :
X-Content-Type-Options: nosniff
Contrôle : Quelle quantité d’informations de référent (d’où vient l’utilisateur) est envoyée à d’autres sites
Cela équilibre confidentialité et fonctionnalité. Votre propre site voit les référents complets ; les sites externes ne voient que le domaine d’origine.
Valeur recommandée :
Referrer-Policy: strict-origin-when-cross-origin
(Remarque : c’est la valeur par défaut dans les navigateurs modernes)
Impose : L’accès exclusif en HTTPS
Une fois qu’un utilisateur visite votre site en HTTPS, HSTS indique au navigateur de ne jamais utiliser HTTP à nouveau pour ce domaine, même si l’utilisateur tape http://.
Valeur recommandée :
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
(Expiration de 2 ans, inclut les sous-domaines, prêt pour les listes de préchargement des navigateurs)
Protège : Les cookies de session contre le vol et la falsification
Ce sont des attributs sur l’en-têteLa section supérieure d'un site web, contenant généraleme... More cookie, pas un en-têteLa section supérieure d'un site web, contenant généraleme... More séparé. Ils garantissent que les cookies ne sont envoyés qu’en HTTPS, ne peuvent pas être lus par JavaScriptUn langage de programmation utilisé pour créer des éléme... More, et ne sont pas envoyés entre différents sites.
Format de cookie recommandé :
Set-Cookie: nom=valeur; Secure; HttpOnly; SameSite=Strict
Prévient : Les attaques XSS et les injections de données, le plus important CSP est puissant mais complexe. Il indique au navigateur exactement quelles sources sont autorisées à charger des scripts, styles, images, polices, etc. Une CSP bien configurée peut arrêter une attaque XSS même si un attaquant trouve une vulnérabilité.
Valeur de base recommandée (ajustez pour votre site) :
Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' https:; style-src 'self' 'unsafe-inline' https:; img-src 'self' data: https:; object-src 'none'
Attention : CSP est facile à casser. Testez minutieusement avant de déployer en production.
Prévient : La divulgation d’informations aux attaquants
Ces en-têtes annoncent exactement quel logiciel serveur et quelle version vous utilisez, utile pour les attaquants qui recherchent des vulnérabilités connues. Supprimez ou minimiser ces informations.
Recommandé : Supprimez complètement, ou définissez des valeurs génériques comme Server: webserver
| En-têteLa section supérieure d'un site web, contenant généraleme... More | Action |
|---|---|
X-XSS-Protection | Définir à 0 (les navigateurs modernes l’ignorent ; sur les anciens, il introduit plus de risques que d’avantages) |
Public-Key-Pins | Obsolète. Ne pas utiliser. |
Vous avez plusieurs options, des plugins au code manuel.
Plugins recommandés :
Ces plugins vous permettent d’activer/désactiver les en-têtes sans toucher au code.
Ajoutez à votre fichier .htaccess racine :
<IfModule mod_headers.c>
Header set X-Frame-Options "DENY"
Header set X-Content-Type-Options "nosniff"
Header set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
Header unset X-Powered-By
Header unset Server
</IfModule>Ajoutez à votre bloc de configuration serveur :
add_header X-Frame-Options "DENY" always; add_header X-Content-Type-Options "nosniff" always; add_header Referrer-Policy "strict-origin-when-cross-origin" always; add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always; add_header X-Powered-By "" always;
functions.php de WordPress (PHP)Pour les en-têtes qui ne peuvent pas être définis au niveau du serveur, ou pour les en-têtes conditionnels :
add_action('send_headers', 'add_security_headers');
function add_security_headers() {
header('X-Frame-Options: DENY');
header('X-Content-Type-Options: nosniff');
header('Referrer-Policy: strict-origin-when-cross-origin');
// Ne définissez PAS HSTS ici si vous avez du contenu mixte HTTP/HTTPS
}Important : HSTS devrait idéalement être défini au niveau du serveur, pas en PHP, pour protéger toutes les requêtes y compris les fichiers statiques.
Après l’implémentation, vérifiez qu’ils fonctionnent correctement.
observatory.mozilla.org) – Scan complet avec notation par lettreVous devriez voir vos en-têtes ajoutés listés.
Secure et HttpOnlyLes en-têtes HTTP de sécurité ne remplacent pas une bonne hygiène WordPress, maintenir les extensions à jour, utiliser une authentification forte et choisir un hébergement fiable. Mais ils constituent un ajout puissant et peu coûteux qui ferme plusieurs vecteurs d’attaque courants.
Commencez modestement. Implémentez d’abord X-Frame-Options, X-Content-Type-Options et Referrer-Policy. Ajoutez ensuite HSTS. Enfin, abordez CSP progressivement.
Testez après chaque modification. Et rappelez-vous : certains en-têtes (notamment CSP) peuvent casser des fonctionnalités s’ils sont mal configurés. Testez toujours d’abord sur un site de staging.