Découvrez la démarche d'éco-conception et de réalisation de notre site internet

Développement

En-têtes de sécurité : Pourquoi faut-il les installer sur votre site web ?

Publié le 12 déc. 2023 - 8 minutes de lecture

Les en-têtes de sécurité sont faits pour protéger les sites web contre diverses cyberattaques, et leur mise en place est un élément crucial d'une stratégie de sécurité web complète pour un site Internet. Quand on se lance dans la création d’un site web, on est tenté de croire que les solutions de sécurité de base, proposées par l’hébergeur, sont suffisantes. Pourtant, personne n’est à l’abri d’un piratage ou d’une cyberattaque, et les conséquences peuvent être désastreuses. Alors, pour protéger votre site Internet des différentes attaques, comme le clickjacking, une faille XSS, ou encore l’injection de code, il est fortement recommandé d’installer des en-têtes de sécurité sur votre site.

En-têtes de sécurité : définition

Les en-têtes de sécurité (security headers) sont cruciaux pour la sécurité des sites web, y compris ceux sous WordPress. Ces en-têtes CSP (Content Security Policy) protègent efficacement le site contre diverses attaques potentielles telles que la faille XSS, l'injection de code, et le clickjacking.

Faciles à mettre en place, indépendamment de la technologie du site, ces en-têtes ajoutent des informations essentielles dans les requêtes serveurs. Elles servent à donner des instructions précises au navigateur sur l'origine des fichiers fiables. Ces instructions, émises par le serveur, permettent au navigateur de les interpréter et de réagir adéquatement en situation de « danger ». Ainsi, elles accroissent la confidentialité et renforcent la sécurité du site web.

Pourquoi faut-il sécuriser un site web ?

Avoir un site non-sécurisé peut présenter plusieurs risques, ou en tout cas des effets négatifs sur la visibilité et le trafic du site.

Au-delà du fait qu’un site mal protégé s’expose au piratage, qui peut nuire à son bon fonctionnement, voire à sa survie, d’autres dangers sont à connaître :

  • Un impact sur le SEO du site : depuis quelque temps déjà, Google pénalise les sites mal sécurisés. Le référencement dans les moteurs de recherche est alors compliqué, et un site en http aura plus de mal à ranker dans la SERP (page des résultats d’un moteur de recherche) qu’un site en https ;
  • Un trafic en chute libre : qui dit mauvais référencement, dit mauvaise visibilité, et donc peu de visites sur le site. Et qui dit peu de visites, dit déclassement par l’algorithme de Google... C’est le serpent qui se mord la queue !
  • Un manque de crédibilité aux yeux des internautes et potentiels clients : un site non-protégé alerte automatiquement l’internaute qui souhaite remplir un formulaire à données sensibles. De quoi refroidir les visiteurs, qui préféreront se tourner vers une concurrence plus safe ;
  • Vos données en danger : si les informations des internautes ne sont pas protégées lorsqu’ils remplissent un formulaire, les vôtres ne le sont pas non plus. Un utilisateur malveillant peut alors récupérer vos données et celles de tous vos visiteurs.

En conclusion, la sécurité d’un site web est avant tout rassurante, pour vous comme pour vos clients. Elle permet d’assurer une image positive de votre entreprise et d’instaurer un climat de confiance.


Pourquoi-faut-il-securiser-un-site-web
Pourquoi-faut-il-securiser-un-site-web

Les différents types d’en-têtes de sécurité

Les utilisateurs sous-estiment souvent les en-têtes de sécurité parmi les différentes solutions pour sécuriser un site web. Pourtant, ils permettent de lutter contre de nombreux dangers du web. Il existe pour cela plusieurs types d’en-têtes de sécurité, dont voici les principaux.

Le Strict-Transport-Security (HSTS)

Pour assurer la confidentialité et la sécurité de chaque requête vers un site web, notamment ceux sous WordPress, il est essentiel de les réaliser en HTTPS, un flux chiffré. Malgré cela, il est encore courant de rencontrer des sites en HTTP. L'en-tête de sécurité Strict-Transport-Security, ou header HSTS, joue un rôle crucial en forçant le navigateur à utiliser un protocole spécifique, redirigeant automatiquement.

Par exemple, si votre en-tête de sécurité HSTS exige l'utilisation du HTTPS, et que vous tentez une connexion en HTTP, cela échouera, ou le header vous redirigera automatiquement vers la version HTTPS du site. Même si techniquement, le site répond en HTTP, un message d'erreur (code 301) s'affichera.

Le HSTS est également un outil de sécurité web permettant de contrôler les sous-domaines. Cela implique que si votre site principal WordPress est en HTTPS, mais qu'un sous-domaine extranet n'est pas en HTTPS, vous pouvez l'inclure dans la politique de sécurité. Grâce à l'en-tête HSTS, vous pouvez indiquer au navigateur que ce sous-domaine (ou tous les sous-domaines) doit également être en HTTPS, renforçant ainsi la sécurité et l'intégrité de l'origine des fichiers et des données du site.

Le X-Frame-Options

Il est courant dans le développement web, y compris sur les sites WordPress, qu'une page web intègre d'autres pages via la balise iframe. Cependant, cela présente un risque de sécurité : un utilisateur malintentionné pourrait intégrer son site malveillant dans une iframe de votre site. L'internaute pourrait alors croire interagir avec votre site, alors qu'en réalité, il échange des données avec un site malveillant.

Pour se prémunir de ce danger, l'en-tête de sécurité X-Frame-Options indique au navigateur si vous autorisez ou non l'intégration de votre site dans un autre. Cet en-tête est un outil de sécurité web essentiel pour contrôler et bloquer les iframes malveillantes ou le clickjacking.

En intégrant la balise du header X-Frame-Options dans les fichiers de configuration de votre site WordPress, vous pouvez déterminer si votre site peut être intégré ailleurs que sur votre propre domaine. Cela permet également d'interdire complètement l'intégration de votre contenu sur d'autres sites, renforçant la sécurité et préservant l'origine des données affichées sur votre site web.

Le X-Content-Type-Options

Pour bien comprendre l’intérêt et le fonctionnement du header X-Content-Type-Options, il faut d’abord savoir qu’à chaque fois que votre navigateur échange des données avec votre serveur, ce dernier demande systématiquement la nature des données (script, html, JSON, image...). Pour ce faire, le serveur envoie des types MIME, que le navigateur va ensuite interpréter.

Problème : un utilisateur malveillant peut facilement modifier les types MIME si aucun en-tête spécifique ne les protège. Ainsi, les utilisateurs finissent par télécharger du contenu dangereux ou se retrouvent redirigés vers un site malveillant, alors qu'ils naviguaient tranquillement sur un site sérieux.

L’en-tête X-Content-Type-Options et sa valeur nosniff entrent alors en jeu pour empêcher le navigateur de détecter le type de contenu des éléments. Il est alors impossible de modifier le type MIME, et l’internaute peut visiter un site sans risque.


Les-Permissions-Policy
Les-Permissions-Policy

Les Permissions-Policy

L’en-tête Permissions-Policy, autrefois nommé Feature Policy, a pour objectif d’autoriser ou d’interdire certaines fonctionnalités et API du navigateur. Ainsi, plus d’une trentaine d’options sont contrôlables avec le header Permissons-Policy.

Par exemple, il est possible de contrôler l’autorisation d’un site à utiliser la caméra, le micro... Par défaut, si l’en-tête n’est pas en place, quelqu’un de malveillant peut utiliser votre caméra ou votre micro, et récupérer des données que vous ne souhaitez pas partager.

Avec les Permissions-Policy, il est possible de n’autoriser que le micro, que la caméra, ou rien du tout. Cela empêche alors d’utiliser d’autres services que ceux autorisés. C’est une option particulièrement intéressante pour une navigation sur mobile, où l’accès au micro et à la caméra est très facile.

Le Referrer-Policy

Quand vous naviguez sur Internet et que vous cliquer sur un lien dans un article, par exemple, vous atterrissez sur une autre page web. Jusqu’ici, nous ne vous apprenons rien. Ce que vous ne savez peut-être pas, en revanche, c’est qu’en arrivant sur la nouvelle page, le serveur sait exactement d’où vous venez (requête d’origine), grâce aux référents, ou referrer.

Cela représente un risque pour la sécurité, car il est possible que des données erronées ou sensibles concernant le 'referrer' soient transmises par le serveur et exploitées à des fins malveillantes.

L'en-tête Referrer-Policy est un outil de sécurité web crucial, permettant de contrôler l'utilisation de l'en-tête Referrer dans les requêtes. Ainsi, dans les fichiers de configuration de votre site WordPress, vous pouvez choisir d'interdire le referrer. Cela garantit que le site de destination n'obtienne aucune information sur le site d'origine de l'utilisateur, renforçant la confidentialité et la sécurité des données transmises sur le web.

La Content Security Policy (CSP)

La CSP est probablement l’en-tête le plus important pour la sécurité de votre site web, mais aussi le plus compliqué à installer, car il est souvent différent d’un site à un autre. En effet, il permet de définir un ensemble de règles pour limiter le risque d’attaques XSS, en contrôlant les sources des éléments, visibles ou non, de votre site Internet.

Grâce au header CSP, il est ainsi possible de définir une sorte de tableau, et de renseigner tous les sites potentiellement utilisés sur votre propre site, ainsi que les ressources autorisées (script, GTM, Axeptio...).

Si, par malchance, vous avez un code malveillant qui vient charger sur votre site un autre script en externe, de n’importe où dans le monde, l’en-tête Content Security Policy va reconnaître qu’il n’est pas autorisé, et préviendra le propriétaire du site via la console du navigateur. Le propriétaire sera alors informé que le script n’a pas été chargé, le site sera protégé contre cette tentative d’attaque.



Quel outil utiliser pour vérifier l’efficacité des en-têtes de sécurité d’un site ?

L’implémentation d’en-têtes de sécurité n’est pas si simple. Alors, pour vous assurer d’avoir optimisé la sécurité de votre site au maximum, vous pouvez utiliser l’outil gratuit du site Security Headers. Il suffit, ensuite, d’entrer l’url de votre site et de cliquer sur « analyser ». Vous obtiendrez alors une étiquette de qualité allant de A à F, ainsi qu’un rapport complet sur le degré de sécurité de votre site.

Vous pourrez également obtenir des conseils sur les en-têtes à intégrer pour améliorer la sécurité de votre site.

Comment implémenter les en-têtes de sécurité dans son site ?

L’intégration des headers de sécurité n’est pas si simple, car c’est du code pur et dur. Mieux vaut alors se tourner vers un professionnel expérimenté, qui saura choisir et intégrer les en-têtes les plus utiles, en seulement quelques heures.

Vous pouvez d’ailleurs faire confiance aux développeurs web de Lemon Interactive pour sécuriser votre site web de manière optimale.

En-têtes de sécurité : un des nombreux éléments d’une stratégie de sécurité complète

Les en-têtes de sécurité ne suffisent pas à montrer et contrer toutes les failles de sécurité d’un site, et leur installation doit donc faire partie d’un ensemble de mesures de sécurité, comme sécuriser le serveur web et l’authentification, ou protéger les données et les composants tiers (framework, librairie...).

Les en-têtes de sécurité doivent ainsi faire partie d’une stratégie de sécurité, et font partie des éléments essentiels, mais pas tout seul. Ils doivent compléter un code de qualité, et un WAF (pare-feu d’application web) qui permet de contrôler en amont du serveur web.

La sécurité d’un site web est essentielle pour assurer la protection des données d’une entreprise, de ses clients et des internautes. Parmi les différentes solutions de sécurité, les en-têtes ont un rôle majeur. C’est pour cette raison que Lemon Interactive les met en place systématiquement sur chacun des sites créés, afin d’assurer une sécurité optimale des contenus et des internautes.

La sécurité

C'est quoi un En-tête HTTP ?

Un en-tête HTTP est un composant clé des requêtes et réponses HTTP qui contient des métadonnées permettant la communication entre le navigateur client et le serveur web.

Ces métadonnées régissent le type de contenu, la compression, les cookies et d'autres paramètres essentiels.

Quel est le champ du header HTML qui permet d'identifier le navigateur utilisé ?

Le champ du header HTML qui permet d'identifier le navigateur utilisé est le "User-Agent". Ce champ contient des informations sur le navigateur et le système d'exploitation de l'utilisateur, permettant ainsi aux serveurs web d'adapter le contenu en conséquence pour une compatibilité optimale.

Dans la même thématique...

Animation web : introduction au développement avec CSS, JavaScript et SVG

22 mai 2024

Coder en dur ou « hardcode » : pourquoi est-ce déconseillé ?

22 mai 2024

Les 5 avantages de TypeScript face à JavaScript

16 mai 2024