Politique de sécurité du contenu (CSP)
22/22 pts
Critique
Configuré
Valeur détectée :
default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src…
Sans CSP, un pirate peut injecter du code malveillant dans votre page (attaque XSS). Il pourrait voler les sessions de vos visiteurs, afficher de faux formulaires ou les rediriger vers un site frauduleux — sans que vous le sachiez.
Le navigateur sait exactement quels scripts et ressources sont autorisés sur votre site. Toute tentative d'injection est bloquée automatiquement, même si une faille existe dans votre code.
Commencez par : Content-Security-Policy: default-src 'self' puis affinez progressivement selon vos dépendances (CDN, analytics, polices…).
Documentation MDN →
Transport sécurisé strict (HSTS)
20/20 pts
Critique
Configuré
Valeur détectée :
max-age=31536000; includeSubDomains; preload
Sans HSTS, un attaquant peut intercepter la connexion de vos visiteurs avant que HTTPS ne soit établi (attaque "man in the middle"). Les mots de passe et données sensibles peuvent transiter en clair sans que personne ne s'en aperçoive.
Le navigateur est forcé d'utiliser HTTPS pour ce domaine, pour toujours (selon max-age). La connexion est chiffrée dès la première requête, sans exception possible.
Ajoutez : Strict-Transport-Security: max-age=31536000; includeSubDomains — et envisagez le preloading HSTS pour une protection maximale.
Documentation MDN →
Protection contre l'encapsulation (X-Frame-Options)
13/13 pts
Important
Configuré
Valeur détectée :
SAMEORIGIN
Votre site peut être intégré dans un cadre invisible sur une autre page. Un pirate peut superposer des éléments transparents et vous faire cliquer sur des actions non souhaitées à votre insu (clickjacking) — comme valider un paiement ou modifier un mot de passe.
Votre site ne peut pas être intégré dans un cadre externe. Les tentatives de clickjacking sont neutralisées avant même que le visiteur n'interagisse.
Ajoutez : X-Frame-Options: SAMEORIGIN pour autoriser l'intégration uniquement depuis votre propre domaine, ou DENY pour l'interdire totalement.
Documentation MDN →
Vérification du type de fichier (X-Content-Type-Options)
13/13 pts
Important
Configuré
Valeur détectée :
nosniff
Sans cet en-tête, le navigateur peut deviner lui-même le type d'un fichier et exécuter du code malveillant déguisé en image ou en document texte. Un fichier uploadé par un utilisateur malveillant pourrait être interprété comme du JavaScript.
Les fichiers sont toujours exécutés selon leur type officiellement déclaré. Les uploads malveillants camouflés sont neutralisés, même si votre validation côté serveur est imparfaite.
Simple et efficace : X-Content-Type-Options: nosniff — une ligne, une protection immédiate.
Documentation MDN →
Politique de référent (Referrer-Policy)
10/10 pts
Modéré
Configuré
Valeur détectée :
strict-origin-when-cross-origin
Par défaut, l'URL complète de votre page est transmise aux sites tiers quand un visiteur clique un lien. Des données potentiellement sensibles (tokens dans l'URL, IDs, paramètres de recherche) peuvent fuiter vers des services externes comme des analytics ou des CDN.
Vous contrôlez précisément quelles informations sont partagées. Votre URL interne reste privée, seule l'origine (domaine) est transmise si nécessaire.
Recommandé : Referrer-Policy: strict-origin-when-cross-origin — bon équilibre entre vie privée et fonctionnalité.
Documentation MDN →
Politique des permissions navigateur
10/10 pts
Modéré
Configuré
Valeur détectée :
geolocation=(), camera=(), microphone=(), payment=(), usb=()
Sans cet en-tête, des scripts tiers intégrés (publicités, widgets, trackers) peuvent accéder silencieusement à des fonctionnalités sensibles : caméra, microphone, géolocalisation ou accéléromètre de vos visiteurs — sans que vous l'ayez autorisé explicitement.
Vous définissez une liste blanche des API navigateur autorisées sur votre site. Même un script tiers compromis ne peut pas accéder à ces fonctionnalités sensibles.
Exemple minimal : Permissions-Policy: camera=(), microphone=(), geolocation=() — adaptez selon vos besoins réels.
Documentation MDN →
Isolation des onglets (COOP)
9/9 pts
Modéré
Configuré
Valeur détectée :
same-origin
Une page malveillante ouverte depuis votre site dans un nouvel onglet peut accéder à l'objet window de votre page et l'espionner (fuite cross-origin). Cela expose potentiellement des données de session ou des informations affichées.
Votre page est isolée des autres contextes de navigation. Même si un utilisateur ouvre un lien malveillant depuis votre site, les deux pages ne peuvent pas communiquer.
Ajoutez : Cross-Origin-Opener-Policy: same-origin — requis aussi pour activer SharedArrayBuffer en toute sécurité.
Documentation MDN →
Restriction des ressources externes (COEP)
3/3 pts
Faible
Configuré
Valeur détectée :
require-corp
Votre page peut charger des ressources depuis n'importe quelle origine externe sans restriction explicite, ouvrant des vecteurs d'attaque liés aux ressources cross-origin.
Seules les ressources dont le serveur autorise explicitement l'intégration peuvent être chargées sur votre page. Renforce l'isolation et protège contre les side-channels comme Spectre.
Ajoutez : Cross-Origin-Embedder-Policy: require-corp — attention, cela nécessite que toutes vos ressources tiers supportent CORS ou CORP.
Documentation MDN →