L’onglet « ⚠ Paranoic Hardening » du plugin CSDN réunit les options les plus délicates : les en-têtes de sécurité HTTP, HSTS et la déconnexion automatique des administrateurs inactifs. Ici tu changes le comportement du navigateur de celui qui visite le site, pas seulement celui du serveur. C’est pour cela que tout est désactivé par défaut.

Où se trouve
Dans le menu latéral de WordPress, va sur Réglages et choisis Cisilino Site Defense Network (point 1 de l’image). Ouvre l’onglet « ⚠ Paranoic Hardening » (point 2). Pour enregistrer, il faut le droit manage_options ; sur multisite il faut manage_network_options.
L’onglet comporte quatre sections. Au point 3, tu trouves « Paranoic Hardening — En-têtes de sécurité HTTP ». Au point 4, il y a « HTTP Strict Transport Security (HSTS) ». Le point 5 est « Vérification des en-têtes de sécurité ». Le point 6 est « Déconnexion automatique des administrateurs pour inactivité ».
À quoi ça sert
Les en-têtes sont des instructions que le site envoie au navigateur avec chaque page. Le plugin les envoie avec le hook send_headers de WordPress, sans toucher au fichier .htaccess. Tu ne risques donc pas une erreur 500, et cela fonctionne même sans mod_headers.
Les en-têtes concernent uniquement le site public. Ils ne sont jamais envoyés dans la zone d’administration. Le plugin n’offre pas de Content-Security-Policy et n’envoie pas de X-XSS-Protection.
Comment utiliser le Paranoic Hardening
En-têtes de sécurité HTTP (point 3)
- X-Content-Type-Options envoie
nosniff. Le navigateur ne « devine » plus le type des fichiers. Le risque est pratiquement nul. - X-Frame-Options envoie
SAMEORIGIN. Le site ne peut plus être intégré dans un<iframe>d’un autre domaine. Si un site partenaire affiche tes pages, il arrêtera de le faire. - Referrer-Policy envoie
strict-origin-when-cross-origin. Vers d’autres domaines, seul le domaine voyage, pas le chemin. Les statistiques de tiers qui veulent le référent complet ne le recevront pas.
Coche les cases dont tu as besoin et clique sur Enregistrer le Paranoic Hardening. Tu verras l’avertissement « Réglages Paranoic Hardening enregistrés et appliqués. » Les cases que tu ne coches pas sont enregistrées comme désactivées.
HSTS (point 4)
HSTS dit au navigateur d’utiliser toujours https avec ton domaine. Il y a trois cases : « Activer HSTS », « includeSubDomains » et « Preload ». L’en-tête envoyé a max-age=31536000, c’est-à-dire un an. La valeur est fixe et ne se change pas.
Le plugin refuse l’activation si la page n’a pas été ouverte en https. Dans ce cas, il enregistre le reste et affiche un avertissement rouge : « Réglages enregistrés, mais HSTS N’a PAS été activé : cette requête n’est pas arrivée en https. Ouvre le panneau en https et réessaie. » Si la page est en http, les trois cases sont aussi désactivées.
Si tu éteins « Activer HSTS », à l’enregistrement « includeSubDomains » et « Preload » sont aussi remises à zéro. Si tu réactives HSTS, tu dois les recocher.
Vérification des en-têtes de sécurité (point 5)
Clique sur Vérifier maintenant. Le plugin fait une requête réelle vers la page d’accueil du site et contrôle quels en-têtes arrivent vraiment. Le résultat apparaît dans l’encadré, avec la date du dernier test.
- Vert : « Tous les en-têtes attendus sont présents dans la réponse réelle du site. »
- Rouge : les en-têtes actifs qui ne sont pas arrivés. Cela peut être un proxy, un CDN ou un autre plugin qui les retire. HSTS apparaît aussi manquant si l’adresse de la page d’accueil est en http et ne mène pas à https, car le plugin l’envoie seulement sur des requêtes https.
- Bleu : « Aucun en-tête actif à vérifier : active au moins une option ci-dessus et enregistre. »
- Rouge avec « Requête de vérification échouée » : la requête n’a pas réussi.
Le test contrôle la présence de l’en-tête, pas sa valeur. Il ne démarre pas seul : tu dois le déclencher toi-même.
Déconnexion automatique des administrateurs (point 6)
Cette section du Paranoic Hardening a son propre bouton, Enregistrer l’autologout administrateurs. Coche « Activer » pour déconnecter les administrateurs inactifs. Puis règle le « Délai d’inactivité (secondes) ». Si le navigateur bloque le localStorage (par exemple en navigation privée), le contrôle ne se déclenche jamais et tu n’es pas déconnecté.
La valeur par défaut est 900, c’est-à-dire 15 minutes. Le minimum est 60 et le maximum est 86400. Si tu écris un nombre hors de ces limites, le plugin le ramène à la valeur admise la plus proche. Par exemple 30 devient 60. L’avertissement reste vert, donc relis le nombre dans le champ après l’enregistrement.
Seuls les utilisateurs avec le droit manage_options sont déconnectés. Les éditeurs et auteurs ne sont pas touchés. L’inactivité est mesurée dans le navigateur : la souris, le clavier, le défilement et le toucher comptent. La session se ferme comme avec « Se déconnecter » et les modifications non enregistrées dans un formulaire ouvert sont perdues.
Ordre d’activation recommandé
- Ouvre le panneau en https.
- Active X-Content-Type-Options, enregistre et clique sur « Vérifier maintenant ».
- Active Referrer-Policy, enregistre et vérifie.
- Vérifie qu’aucun site n’intègre le tien, puis active X-Frame-Options, enregistre et vérifie.
- Active l’autologout avec un délai généreux, par exemple 1800. Ne le réduis qu’après quelques jours.
- En dernier, envisage HSTS, sans includeSubDomains et sans Preload.
Active une seule option à la fois. Si quelque chose casse, tu sais immédiatement laquelle.
Le risque de HSTS, includeSubDomains et Preload
Attention : HSTS ne se défait pas depuis le site. Si tu décoches, le plugin arrête d’envoyer l’en-tête, mais les navigateurs qui l’ont déjà reçu s’en souviennent jusqu’à l’expiration. Le plugin n’envoie jamais max-age=0, il n’a donc pas d’« annuler ». La bannière de l’onglet le dit aussi : les effets peuvent rester visibles pendant des semaines ou des mois.
Avec HSTS actif, le navigateur refuse toute connexion non https vers le domaine. Si le certificat expire ou se casse, le navigateur n’affiche même plus l’écran « continuer malgré tout ». Le site reste inaccessible depuis ce navigateur.
- includeSubDomains étend la règle à tous les sous-domaines. Un seul sous-domaine sans https valide, même de test ou futur, devient inaccessible pour qui a déjà visité le site. Active-le seulement si tous les sous-domaines sont et seront en https.
- Preload ajoute seulement le drapeau
preloadà l’en-tête. À lui seul, cela n’inscrit pas le site : l’envoi vers la liste des navigateurs se fait à la main sur hstspreload.org. La liste est à l’intérieur des navigateurs, et en sortir demande des semaines. Considère Preload comme un choix définitif.
Enregistre toujours depuis la version https du panneau. Les cases désactivées ne sont pas envoyées par le navigateur : en enregistrant depuis une page http, HSTS et ses sous-options s’éteignent.
Ce qui se passe en coulisses
Les réglages du Paranoic Hardening sont des options de WordPress, pas des règles du serveur. L’autologout imprime un script seulement dans les pages d’administration. Le script enregistre la dernière activité dans le localStorage du navigateur et contrôle le délai toutes les 5 secondes. À l’expiration, il demande à admin-ajax.php d’exécuter la déconnexion et te ramène à la page de connexion. L’enregistrement finit dans le Registre d’activité seulement si tu as changé quelque chose.
Si quelque chose ne va pas
- L’encadré est rouge après « Vérifier maintenant » : un proxy, un CDN ou un autre plugin retire les en-têtes. Vérifie leur configuration.
- Un site partenaire n’affiche plus tes pages : décoche X-Frame-Options et enregistre.
- Tu n’arrives pas à activer HSTS : rouvre le panneau avec l’adresse https.
- Pour contrôler les en-têtes à la main, tu peux utiliser les outils de développement du navigateur ou
curl -Isur l’adresse https du site.
Pour mieux comprendre comment fonctionne HSTS, lis la page Strict-Transport-Security sur MDN. Elle explique max-age, includeSubDomains et preload avec précision.
Précédent : Onglet Test : vérifier que les protections fonctionnent. Suivant : Inscription des utilisateurs : qui peut créer un compte. Pour le sommaire général, va au chapitre 1 du manuel.
Laisser un commentaire