S’assurer que la sécurité est correctement configurée pour votre site WordPress est très important, surtout lorsqu’il s’agit de vous protéger contre les pirates informatiques. Il existe de nombreuses améliorations différentes et les meilleures pratiques de sécurité WordPress que vous pouvez mettre en œuvre pour vous assurer que votre site est verrouillé. Si votre site WordPress fonctionne sur HTTPS, l’une des améliorations que nous vous recommandons de mettre en œuvre est l’en-tête de sécurité HSTS, car cela peut aider à prévenir les attaques “man-in-the-middle” (MitM) et le détournement de cookie.

Qu’est-ce que le HSTS (Strict Transport Security) ?

HSTS signifie HTTP Strict Transport Security et a été spécifié par l’IETF dans la RFC 6797 en 2012. Il a été créé pour forcer le navigateur à utiliser des connexions sécurisées lorsqu’un site fonctionne sur HTTPS. Il s’agit d’un en-tête de sécurité que vous ajoutez à votre serveur Web et est reflété dans l’en-tête de réponse comme Strict-Transport-Security. Le HSTS est important parce qu’il aborde les questions suivantes :

  • Toute tentative par les visiteurs d’utiliser la version non sécurisée (HTTP://) d’une page de votre site sera automatiquement transférée vers la version sécurisée (HTTPS://).
  • Les anciens signets HTTP et les personnes qui tapent la version HTTP de votre site vous ouvrent aux attaques “man-in-the-middle”. Il s’agit d’attaques où l’agresseur altère la communication entre les parties et leur fait croire qu’elles communiquent toujours entre elles.
  • Ne pas permettre l’écrasement du message de certificat invalide qui, à son tour, protège réellement le visiteur.
  • Détournement de cookie : Cela peut se produire lorsque quelqu’un vole un cookie de session sur une connexion non sécurisée. Les cookies peuvent contenir toutes sortes d’informations précieuses telles que des informations de carte de crédit, noms, adresses, etc.

Comment ajouter le HSTS à votre site WordPress

Techniquement, vous ajoutez le HSTS au serveur Web lui-même, qui est ensuite appliqué aux requêtes HTTP sur votre site WordPress. Typiquement, une redirection 301 est ajoutée lors d’une redirection de HTTP vers HTTPS. Google a officiellement dit que vous pouvez utiliser les redirections de serveur 301 ainsi que l’en-tête HSTS ensemble.

Bien que nos systèmes préfèrent la version HTTPS par défaut, vous pouvez également le rendre plus clair pour les autres moteurs de recherche en redirigeant votre site HTTP vers votre version HTTPS et en implémentant l’en-tête HSTS sur votre serveur. Zineb Ait Bahajji, équipe de sécurité Google

Il existe différents types de directives ou de niveaux de sécurité qui peuvent s’appliquer à l’en-tête HSTS. Ci-dessous se trouve la directive la plus basique qui utilise la directive sur l’âge maximum. Définit le temps en secondes pendant lequel le serveur web ne doit livrer que par HTTPS.

Activer le HSTS dans Apache

Ajoutez le code suivant à votre fichier hosts virtuel.

Header always set Strict-Transport-Security max-age=31536000

Activer le HSTS dans NGINX

Ajoutez le code suivant à votre configuration NGINX.

add_header Strict-Transport-Security "max-age=31536000";

Si vous êtes un client Kinsta et que vous souhaitez ajouter l’en-tête HSTS à votre site WordPress, vous pouvez ouvrir un ticket de support et nous pouvons l’ajouter rapidement pour vous. En fait, il y a des bénéfices au niveau performances à l’ajout de l’en-tête HSTS. Si quelqu’un essaie de visiter votre site via HTTP, au lieu de faire une requête HTTP, il est simplement redirigé vers la version HTTPS.

Préchargement du HSTS

Il y a aussi le préchargement du HSTS. Il s’agit essentiellement d’obtenir votre site Web et / ou domaine sur une liste HSTS approuvé qui est effectivement intégré dans le navigateur. Google compile officiellement cette liste et elle est utilisée par Chrome, Firefox, Opera, Safari, IE11 et Edge. Soumettez votre site à la liste de préchargement officielle du HSTS.

Préchargement HSTS
Préchargement HSTS

Toutefois, vous devez satisfaire à certaines exigences supplémentaires pour être admissible.

  1. Le serveur doit posséder un certificat SSL/TLS valide (TLS vs SSL : Quelle est la Différence ?).
  2. Redirigez tout le trafic vers HTTPS.
  3. Servez le HSTS sur le domaine de base.
  4. Servez tous les sous-domaines en HTTPS, en particulier le sous-domaine www s’il existe.
  5. L’expiration doit être d’au moins 1 an (31536000 secondes)
  6. La directive includeSubdomains token doit être spécifiée
  7. La directive preload token doit être spécifiée.

Pour ce faire, il faut ajouter les sous-domaines supplémentaires et les directives de préchargement à votre en-tête HSTS. Voici un exemple de l’en-tête mis à jour du HSTS.

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";

Je vous préviens : Il peut être difficile et long de retirer votre domaine de la liste de préchargement, assurez-vous donc que vous allez utiliser HTTPS pour le long terme.

Vérifier l’en-tête HSTS

Il y a quelques façons faciles de vérifier si le HSTS fonctionne sur votre site WordPress. Vous pouvez lancer Google Chrome Devtools, cliquer dans l’onglet « Réseau » et regarder l’onglet en-têtes. Comme vous pouvez le voir ci-dessous sur notre site Web Kinsta, la valeur HSTS : « strict-transport-security: max-age=31536000  » est appliquée.

réponse http de sécurité de transport strict

Vous pouvez également scanner votre site WordPress avec un outil en ligne gratuit comme securityheaders.io qui vous indiquera si l’en-tête strict de sécurité de transport est appliqué ou non.

scan security headers

Support du HSTS par les navigateurs

Selon Caniuse, la prise en charge du HSTS par les navigateurs est très forte (plus de 80 % à l’échelle mondiale et plus de 95 % aux États-Unis). La prise en charge du HSTS dans IE11 a été ajoutée en 2015 et actuellement le seul navigateur moderne qui ne le supporte pas est Opera Mini.

support du navigateur hsts

Nous vous recommandons également de lire cet article de Tim Kadlec sur HSTS et Let’s Encrypt.

Impact du HSTS sur le SEO

Une fois que votre site Web est approuvé et inclus dans la liste de préchargement du HSTS, vous pourriez remarquer des avertissements de la Google Search Console ou d’autres outils de référencement tiers concernant les redirections 307. C’est parce que lorsque quelqu’un tente de visiter votre site via HTTP une redirection 307 dans le navigateur se produit maintenant, au lieu d’une redirection 301 (comme vu ci-dessous).

HSTS – Strict-Transport-Security – Redirection 307
HSTS – Strict-Transport-Security – Redirection 307

Typiquement, une redirection 307 n’est utilisée que pour les redirections temporaires. Une redirection 301 est utilisée pour les URLs qui ont été déplacées de façon permanente. Ne devrait-il pas utiliser une redirection 301 ? Et qu’en est-il des ramifications SEO de cela ?

Eh bien, en fait, une redirection 301 est toujours présente dans les coulisses. La redirection 307 se fait au niveau du navigateur et non au niveau du serveur. Vous pouvez exécuter le site via un outil qui vérifie la redirection au niveau du serveur, comme httpstatus, et vous verrez qu’en fait, une redirection 301 est toujours en place. Par conséquent, vous n’avez pas à vous soucier de l’impact de l’en-tête HSTS sur votre référencement.

Redirection 301 du HSTS
Redirection 301 du HSTS