Aller au contenu

Paramètres des cookies

Choisissez, par catégorie, les cookies que vous autorisez. Vous pouvez modifier votre choix à tout moment via Paramètres des cookies, en bas de chaque page. Politique de confidentialité

Nécessaires

Toujours activés

Indispensables pour vous connecter, conserver votre panier et mémoriser vos choix. Ils sont toujours activés.

Quels cookies ?
  • weboke_sessie, weboke_klant, weboke_remember: votre session et le maintien de la connexion
  • weboke_basket: votre panier
  • wkBtwIncl: l'affichage des prix TTC ou HT
  • wok_cookies: votre choix concernant les cookies, 12 mois

Mesure quelle publicité mène à une visite ou à une commande, pour que nous ne payions pas des publicités inefficaces.

Quels cookies ?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), jusqu'à 90 jours
  • OpenAI Ads, publicités dans ChatGPT
  • wok_aff: le partenaire qui vous a orienté vers nous (programme d'affiliation), 60 jours

4,6

Pays et langue

Chaque pays a son propre site, avec les prix et la TVA de ce pays.

Afficher

Votre site web : https, HSTS et en-têtes de sécurité

Module 4: E-mail, site web et domaine · Temps de lecture : 11 minutes

Objectif pédagogique : après cette leçon, vous serez capable de vérifier la sécurité de base de votre site web : un certificat valide, la redirection vers https, HSTS avec un bon max-age, les principaux en-têtes de sécurité et la mise à jour de votre CMS.
Notions clés : certificat TLS, https, redirection vers https, HSTS, max-age, includeSubDomains, preload, en-tête HTTP, Content-Security-Policy, X-Content-Type-Options, frame-ancestors, X-Frame-Options, Referrer-Policy

Ce qui se passe quand quelqu'un ouvre votre site

Si un client tape example.com dans la barre d'adresse, le navigateur demande la page à votre serveur web. Cet échange passe par HTTP. Avec https, cet échange est entouré d'une connexion chiffrée : TLS. Pour cela, votre site web a besoin d'un certificat TLS (souvent encore appelé certificat SSL). Le certificat prouve que le serveur correspond réellement à example.com, et le chiffrement garantit que personne ne peut lire ou modifier les échanges en chemin. C'est important sur un wifi public, où vous ne savez pas qui gère le réseau (leçon 5.3).

À chaque réponse, le serveur envoie, en plus de la page elle même, une série d'en-têtes : de courtes lignes d'information et d'instructions pour le navigateur. Vous ne les voyez pas à l'écran, mais elles déterminent en grande partie la façon dont le navigateur traite votre site de manière sécurisée. Certains de ces en-têtes sont des en-têtes de sécurité. Dans cette leçon, nous allons parcourir les quatre niveaux : le certificat, la redirection, HSTS et les en-têtes. Nous verrons ensuite brièvement la mise à jour de votre site web lui même.

Niveau 1 : un certificat valide

Un certificat est correct s'il répond à trois conditions :

  1. il n'est pas expiré ;
  2. il a été émis par un émetteur de confiance (une autorité de certification reconnue par les navigateurs, comme Let's Encrypt ou un prestataire commercial) ;
  3. il est valable pour exactement le nom que le visiteur ouvre : example.com et www.example.com si vous utilisez les deux.

Presque tous les hébergeurs mettent aujourd'hui en place un certificat gratuit qui se renouvelle automatiquement. Si cela ne fonctionne pas, c'est généralement parce que le nom de domaine pointe vers un autre serveur, ou parce qu'un enregistrement CAA bloque l'émetteur (leçon 4.3).

Point important à retenir : un cadenas ne dit rien sur la fiabilité du site. Il indique seulement que la connexion est chiffrée et que le certificat correspond au nom affiché dans la barre d'adresse. Les sites de phishing sur mijnbank-veilig.example affichent eux aussi un cadenas. C'est pourquoi vous apprendrez à lire un domaine dans la leçon 3.2.

Niveau 2 : toujours rediriger vers https

Un certificat seul ne suffit pas. Quelqu'un qui ouvre http://example.com, par exemple via un ancien lien ou simplement en tapant le nom, doit automatiquement être redirigé vers la version https. C'est ce qu'on appelle une redirection (un redirect, généralement avec le code de statut 301).

Un ordre correct est le suivant :

http://example.com      ->  https://example.com
https://example.com     ->  https://www.example.com   (alleen als je www als hoofdadres gebruikt)
http://www.example.com  ->  https://www.example.com

Notez la première ligne : redirigez d'abord de http vers https sur le même nom, puis éventuellement vers www seulement ensuite. Ainsi, le navigateur peut aussi recevoir l'instruction HSTS du nom nu. Internet.nl vérifie précisément ce point.

Une erreur fréquente est la double redirection : dans le panneau d'hébergement et dans une extension ou dans .htaccess. Cela peut provoquer une boucle infinie (« trop de redirections »). N'utilisez qu'un seul emplacement.

Niveau 3 : HSTS

La redirection a un point faible : la toute première requête passe encore en clair via http. Un attaquant présent sur le même réseau peut intercepter cette requête et maintenir le visiteur sur une version falsifiée et non chiffrée. C'est à cela que sert HSTS (HTTP Strict Transport Security, RFC 6797).

Avec HSTS, votre site envoie un en-tête via https :

Strict-Transport-Security: max-age=31536000; includeSubDomains

Le navigateur retient alors : « ouvrir ce site uniquement via https, pendant les 31 536 000 prochaines secondes (un an) ». Si le visiteur tape ensuite http://example.com, le navigateur transforme lui même l'adresse en https, avant même qu'une quelconque requête ne transite par le réseau. La requête initiale vulnérable disparaît ainsi.

ÉlémentSignification
max-age=Durée pendant laquelle le navigateur s'en souvient, en secondes. Internet.nl considère au moins un an (max-age=31536000) comme suffisant ; une durée courte ne protège pas les personnes qui ne visitent votre site qu'occasionnellement.
includeSubDomainsS'applique aussi à tous les sous-domaines, comme shop.example.com et mail.example.com.
preloadVous demandez à être inclus dans la liste intégrée aux navigateurs (hstspreload.org). Même la toute première visite est alors protégée. Exigences : notamment un max-age d'au moins un an, includeSubDomains et tous les sous-domaines en https. En sortir prend ensuite beaucoup de temps.
max-age=0Efface l'instruction mémorisée.

Trois éléments à connaître avant d'activer HSTS :

  • https doit d'abord fonctionner partout. Un navigateur qui a mémorisé HSTS et qui rencontre une erreur de certificat ne propose aucun bouton pour continuer malgré tout (RFC 6797, paragraphe 12.1). Si votre certificat expire ou ne correspond pas à www, votre site devient inaccessible pour ces visiteurs tant que le problème n'est pas résolu.
  • includeSubDomains affecte tout ce qui dépend de votre domaine. Un ancien sous-domaine sans certificat, par exemple une page d'imprimante ou de caméra sur camera.example.com, devient alors inaccessible.
  • Montez en puissance progressivement. Commencez par un max-age court (par exemple un jour), vérifiez que tout fonctionne, puis augmentez progressivement jusqu'à un an. Attendez la durée complète à chaque étape.

Un en-tête HSTS reçu via http simple est ignoré par le navigateur. Vous ne le voyez donc que dans la réponse https.

Niveau 4 : en-têtes de sécurité

Outre HSTS, il existe quelques en-têtes qui indiquent au navigateur ce qu'il peut ou ne peut pas faire avec vos pages. Vous n'avez pas besoin de tous les avoir parfaitement configurés, mais les trois premiers sont simples et sans risque.

En-têteContre quoiBonne valeur
X-Content-Type-OptionsLe navigateur se met à deviner lui même la nature d'un fichier, ce qui permet à une « image » téléversée d'être exécutée comme un script.nosniff (la seule valeur valable)
Content-Security-Policy: frame-ancestors ... ou X-Frame-OptionsClickjacking : un autre site charge votre page de manière invisible dans un cadre et incite les visiteurs à cliquer, sans le savoir, sur vos boutons.frame-ancestors 'self' ou 'none' ; l'en-tête plus ancien X-Frame-Options: SAMEORIGIN ou DENY
Referrer-PolicyLorsqu'un visiteur clique vers un autre site, le navigateur transmet l'adresse de la page précédente. Celle ci peut contenir des informations sensibles, comme un terme de recherche ou un numéro de commande.no-referrer ou same-origin (strict), strict-origin-when-cross-origin (courant, internet.nl affiche un avertissement sur ce point)
Content-Security-Policy (complet)Limite les emplacements depuis lesquels les scripts, styles et images peuvent être chargés. Rend les scripts malveillants injectés (XSS) beaucoup plus difficiles à exploiter.Configuration sur mesure selon le site. Évitez unsafe-inline, unsafe-eval et les jokers.

Une Content-Security-Policy complète est l'option la plus puissante, mais aussi la plus délicate à mettre en œuvre : une règle trop stricte peut casser vos statistiques, votre bouton de paiement ou votre fenêtre de chat. Avec la variante Content-Security-Policy-Report-Only, vous pouvez d'abord mesurer ce qui serait bloqué, sans rien casser. Confiez cette tâche à votre prestataire web, ou commencez uniquement par frame-ancestors.

Observer les en-têtes vous même

Ouvrez votre site dans un navigateur, appuyez sur F12 (ou choisissez « Inspecter »), allez dans l'onglet Réseau, rechargez la page et cliquez sur la première requête. Sous « En-têtes de réponse » (Response Headers), vous voyez tout ce que le serveur envoie. Avec la ligne de commande, c'est également possible :

curl -sI https://example.com/

Le site web lui même : CMS, extensions et thèmes

Les meilleurs en-têtes ne servent à rien si le logiciel derrière votre site est vulnérable. La plupart des sites piratés de petites entreprises n'ont pas été compromis via le serveur web, mais via une extension obsolète, un thème qui n'a plus été mis à jour depuis des années, ou un mot de passe administrateur trop faible.

  • Activez les mises à jour automatiques pour votre CMS (par exemple WordPress, Joomla ou un autre système) et pour les extensions, dans la mesure du possible.
  • Supprimez les extensions et thèmes que vous n'utilisez pas ; les désactiver ne suffit pas, les fichiers restent présents.
  • Utilisez pour la connexion administrateur un mot de passe fort et unique ainsi que l'authentification à deux facteurs (module 2), et limitez le nombre de tentatives de connexion.
  • Maintenez la version PHP (ou tout autre langage) de votre installation dans une version qui reçoit encore des mises à jour (leçon 5.1).

En pratique : à quoi cela ressemble

Dans DirectAdmin, le panneau utilisé par WebOké, activez d'abord SSL sécurisé pour votre domaine, puis Forcer SSL avec HTTPS Redirect. Au même endroit se trouve un interrupteur pour HSTS ; n'activez le que lorsque le certificat fonctionne pour tous les noms. Chez d'autres prestataires, le fonctionnement est comparable, ou vous réglez cela dans les paramètres de votre CMS.

Si votre site fonctionne sous Apache ou LiteSpeed, vous pouvez aussi placer les en-têtes dans .htaccess :

<IfModule mod_headers.c>
  Header always set Strict-Transport-Security "max-age=31536000"
  Header always set X-Content-Type-Options "nosniff"
  Header always set Content-Security-Policy "frame-ancestors 'self'"
  Header always set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>

N'ajoutez includeSubDomains que lorsque vous êtes certain que chaque sous-domaine dispose de https. Vérifiez après chaque modification avec le test de site web d'internet.nl ou avec les outils de développement de votre navigateur.

Résumé

  • Un cadenas signifie : chiffré et bon nom. Il ne signifie pas : fiable.
  • Redirigez toujours http vers https, d'abord sur le même nom, et à un seul endroit.
  • HSTS permet au navigateur de retenir que votre site ne fonctionne que via https ; internet.nl considère un max-age d'au moins un an (31536000) comme correct. Activez le uniquement lorsque https fonctionne partout, et montez en puissance progressivement.
  • X-Content-Type-Options: nosniff, frame-ancestors (ou X-Frame-Options) et Referrer-Policy sont simples à mettre en place ; une Content-Security-Policy complète demande une configuration sur mesure.
  • Les mises à jour de votre CMS, de vos extensions et de vos thèmes sont au moins aussi importantes que les en-têtes.

Quiz

1. Que prévient exactement HSTS ?



2. Vous activez Strict-Transport-Security: max-age=31536000; includeSubDomains. Une semaine plus tard, le certificat de shop.example.com expire. Que constatent les visiteurs habituels ?



3. Quel max-age internet.nl considère-t-il au minimum comme suffisant pour HSTS ?



4. Contre quoi Content-Security-Policy: frame-ancestors 'self' protège-t-il ?



5. Vous voyez un cadenas sur mijnbank-veilig.example dans la barre d'adresse. Qu'est-ce que cela vous garantit avec certitude ?



Exercice

Exercice A4.2 : Vérifier le https, le HSTS et les en-têtes de sécurité de votre site web. Saisissez le nom de domaine de votre site web (si vous n'en avez pas, utilisez internet.nl). Le programme ouvre les versions http:// et https:// de votre domaine et vérifie le certificat, la redirection vers https, HSTS et les en-têtes de sécurité. Vous obtenez pour chaque point un résultat vert, orange ou rouge avec une explication.

Exercice A4.2: Vérifier le https, le HSTS et les en-têtes de votre site web

Indiquez le nom de domaine de votre site web (si vous n'en avez pas, utilisez internet.nl). Le programme ouvre les versions http:// et https:// de votre domaine et vérifie le certificat, la redirection vers https, le HSTS et les en-têtes de sécurité. Indiquez ensuite le max-age du HSTS.



Nous ne conservons pas ce que vous saisissez ni ce que nous trouvons. Votre navigateur mémorise vos réponses et si l'exercice est réussi. Si vous êtes connecté, nous enregistrons uniquement dans Mes formations que l'exercice était (presque) correct ; vous pouvez aussi le supprimer à cet endroit.

Exercice D4.2 : Mettre à jour et nettoyer votre site web. Connectez vous à l'administration de votre site web, vérifiez la version de votre CMS, de vos extensions et de vos thèmes, supprimez ce que vous n'utilisez pas et activez les mises à jour automatiques là où c'est possible. Cochez la liste de vérification et répondez à la question de réflexion.

Exercice D4.2: Mettre à jour et nettoyer votre site web

Voici comment procéder : (1) Connectez-vous à l'administration de votre site web (ou demandez à votre développeur de le faire avec vous). (2) Notez la version de votre CMS et vérifiez si des mises à jour sont disponibles. (3) Faites une sauvegarde (leçon 6.1), installez les mises à jour du CMS, des extensions et des thèmes. (4) Supprimez les extensions et thèmes que vous n'utilisez pas. (5) Activez les mises à jour automatiques là où c'est possible. (6) Vérifiez quels comptes administrateur existent et supprimez les comptes des personnes qui ne travaillent plus pour vous. (7) Activez l'authentification à deux facteurs (2FA) pour chaque compte administrateur.




Vos cases cochées et vos notes restent uniquement dans ce navigateur ; nous ne les envoyons nulle part. Si vous êtes connecté, nous enregistrons dans Mes formations uniquement le fait que vous avez terminé l'exercice.

Pour aller plus loin

Les étapes décrites dans les articles WebOké s'appliquent à l'environnement de WebOké ; chez d'autres prestataires, le fonctionnement est comparable.

Un instant…

Configurez vos domaines

Pour chaque domaine, réglez les serveurs de noms, l'association à votre hébergement et le futur titulaire.

Chargement de vos domaines…