Security Headers : protéger votre site WordPress

Les en-têtes de sécurité sont une protection souvent négligée, mais pourtant essentielle pour votre site WordPress.
Découvrez comment les configurer facilement.

📅 Lecture 12 min
🎯 Niveau Intermédiaire
🔒 Sécurité WordPress

Lorsqu'un visiteur accède à votre site, son navigateur échange des informations avec votre serveur.
Les Security Headers sont des instructions discrètes
qui accompagnent chaque réponse du serveur.

Elles indiquent au navigateur comment se comporter pour mieux protéger votre site et vos visiteurs.

Imaginez-les comme des règles de sécurité placées à l'entrée d'un bâtiment : elles n'empêchent pas l'accès, mais elles empêchent certains comportements dangereux.

⚠️ Pourquoi sont-ils importants ?

Sans Security Headers, votre site est plus exposé à de nombreuses attaques qui peuvent compromettre la sécurité de vos données et de vos visiteurs.

🚨
Attaques XSS (Cross-Site Scripting)
Injection de scripts malveillants dans votre site pour voler des données ou manipuler le contenu
🎯
Clickjacking (pièges de clics)
Votre site affiché dans une iframe invisible pour tromper les utilisateurs et leur faire cliquer à leur insu
💉
Injections de code malveillant
Insertion de code externe non autorisé qui peut compromettre la sécurité de votre site
📡
Fuite d'informations sensibles
Transmission non contrôlée de données vers des sites externes via les headers de référence

C'est une couche de sécurité simple mais puissante, que l'on peut activer en quelques minutes pour renforcer considérablement la protection de votre site WordPress.

🛡️ Les principaux Security Headers à connaître

Voici les 7 headers de sécurité essentiels que tout site WordPress devrait implémenter pour se protéger efficacement contre les principales menaces.

🛡️ Content-Security-Policy (CSP)
But : Bloquer les scripts non autorisés (anti-XSS)
Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted-scripts.com;
🚫 X-XSS-Protection
But : Activer la protection XSS du navigateur
X-XSS-Protection: 1; mode=block
🖼️ X-Frame-Options
But : Empêcher l'affichage du site dans une iframe externe (anti clickjacking)
X-Frame-Options: SAMEORIGIN
📄 X-Content-Type-Options
But : Forcer les navigateurs à respecter le type de fichier
X-Content-Type-Options: nosniff
🔗 Referrer-Policy
But : Contrôler les données de provenance envoyées avec les liens sortants
Referrer-Policy: strict-origin-when-cross-origin
🔒 Strict-Transport-Security (HSTS)
But : Forcer le chargement en HTTPS
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
📱 Permissions-Policy
But : Gérer les permissions d'accès au micro, à la caméra, etc.
Permissions-Policy: camera=(), microphone=(), geolocation=()

⚙️ Comment les mettre en place sur WordPress ?

Il existe 3 méthodes principales pour implémenter les Security Headers sur WordPress.
Choisissez celle qui correspond le mieux à votre niveau technique.

🔌 Méthode 1 : Via un plugin

Niveau : Débutant - Le plus simple pour commencer

Plugins recommandés :

  • Sucuri Security - Protection complète
  • Really Simple SSL - Focus HTTPS et headers
  • WP Headers and Security - Spécialisé headers
Avantage : Interface simple, configuration assistée, idéal pour débuter
📁 Méthode 2 : Via le fichier .htaccess

Niveau : Intermédiaire - Configuration manuelle

Ajoutez ce bloc à la fin de votre .htaccess (à la racine du FTP) ou juste avant # End WordPress :

# Security Headers Header unset ETag Header always set Content-Security-Policy "upgrade-insecure-requests" Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" Header always set X-Frame-Options "SAMEORIGIN" Header always set X-Content-Type-Options "nosniff" Header always set Referrer-Policy "strict-origin-when-cross-origin" Header always set Permissions-Policy "geolocation=(), midi=(), notifications=(), push=(), sync-xhr=(), accelerometer=(), gyroscope=(), magnetometer=(), payment=(), camera=(), microphone=(), usb=(), xr=(), speaker=(self), vibrate=(), fullscreen=(self)" Header always set X-XSS-Protection "1; mode=block" # Fin Security Headers
💡 Astuce : Sauvegardez votre .htaccess avant modification !
💻 Méthode 3 : Via functions.php

Niveau : Avancé - Intégration dans le thème

Ajoutez ce code dans le fichier functions.php de votre thème :

function add_security_headers() { header('Strict-Transport-Security: max-age=31536000; includeSubDomains; preload'); header('X-XSS-Protection: 1; mode=block'); header('X-Frame-Options: SAMEORIGIN'); header('X-Content-Type-Options: nosniff'); header('Referrer-Policy: strict-origin-when-cross-origin'); header('Permissions-Policy: camera=(), microphone=(), geolocation=()'); } add_action('send_headers', 'add_security_headers');
⚠️ Attention : Cette méthode est liée au thème actif

🧪 Comment tester si les headers sont actifs ?

Une fois vos Security Headers configurés, il est essentiel de vérifier qu'ils fonctionnent correctement.
Voici plusieurs méthodes pour les tester.

1

Outils en ligne gratuits

Ces services analysent automatiquement vos headers :

  • SecurityHeaders.com - Analyse complète avec notation
  • Mozilla Observatory - Test détaillé par Mozilla
  • GTmetrix - Inclut l'analyse des headers de sécurité
🎯 Objectif : Obtenir un score A ou A+ sur SecurityHeaders.com
2

Via votre navigateur

Méthode manuelle pour vérifier directement :

  1. Ouvrez les outils développeur (F12)
  2. Allez dans l'onglet "Réseau"
  3. Rechargez votre page
  4. Cliquez sur le premier fichier de la liste
  5. Vérifiez les headers dans "Response Headers"
👀 À chercher : Les headers que vous avez configurés doivent apparaître

Important : Les changements peuvent prendre quelques minutes à être visibles selon votre configuration de cache. N'hésitez pas à vider le cache de votre site et de votre navigateur.

📊 Exemple de test réussi

Si vos headers sont correctement configurés, vous devriez voir dans la section "Response Headers" :

strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-frame-options: SAMEORIGIN x-xss-protection: 1; mode=block referrer-policy: strict-origin-when-cross-origin

🎯 Récapitulatif : Sécurisez votre WordPress maintenant

Activer les Security Headers sur WordPress, c'est :

  • Rapide - Configuration en quelques minutes
  • Gratuit - Aucun coût supplémentaire
  • Efficace - Protection contre de nombreuses attaques
  • Compatible - Fonctionne avec tous les thèmes et plugins

N'oubliez pas : Les Security Headers ne remplacent pas les autres bonnes pratiques (mises à jour, mots de passe forts, sauvegardes), mais ils ajoutent une barrière précieuse contre les attaques.

Besoin d'aide pour sécuriser votre site ? 🔒