🛠 Outils IT
🛠 78 outils 📚 32 docs
🤖 Assistant
← Retour aux outils

🛡 Header Security Checker

Analyse les en-têtes de sécurité HTTP d'un site web et attribue une note globale.

Entrez une URL complète ou un nom de domaine (ex: exemple.com)

Description

Cet outil analyse les en-têtes de sécurité HTTP d'un site web et attribue une note de A+ à F. Il vérifie la présence et la qualité de 10 en-têtes de sécurité essentiels.

En-têtes vérifiés

  • Content-Security-Policy (CSP) - Prévient les attaques XSS en contrôlant les sources de contenu autorisées
  • Strict-Transport-Security (HSTS) - Force l'utilisation de HTTPS
  • X-Content-Type-Options - Empêche le MIME sniffing
  • X-Frame-Options - Protège contre le clickjacking
  • X-XSS-Protection - Filtre XSS intégré du navigateur (obsolète mais encore utile)
  • Referrer-Policy - Contrôle les informations de referrer envoyées
  • Permissions-Policy - Restreint les API du navigateur (caméra, micro, etc.)
  • Cross-Origin-Opener-Policy - Isole le contexte de navigation
  • Cross-Origin-Resource-Policy - Protège les ressources contre le chargement cross-origin
  • Cross-Origin-Embedder-Policy - Contrôle le chargement de ressources cross-origin

Notation

  • A+ - Excellent : tous les en-têtes présents et bien configurés
  • A/B - Bon : la majorité des en-têtes sont présents
  • C - Moyen : certains en-têtes importants manquent
  • D/F - Faible : configuration de sécurité insuffisante

Utilisation

  • Entrez l'URL d'un site web et cliquez sur "Analyser"
  • Consultez la note globale et les détails de chaque en-tête
  • Suivez les recommandations pour améliorer la sécurité

🛠 Comment corriger les en-têtes manquants

Voici les configurations à ajouter sur votre serveur pour les 4 en-têtes les plus critiques :

1. Content-Security-Policy (CSP)

Empêche les attaques XSS en contrôlant les sources de contenu autorisées (scripts, styles, images, etc.).

Apache.htaccess ou config vhost :

Header set Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; frame-ancestors 'none';"

Nginx — bloc server :

add_header Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; frame-ancestors 'none';" always;

IISweb.config :

<customHeaders>
  <add name="Content-Security-Policy" value="default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; frame-ancestors 'none';" />
</customHeaders>

PHP — en haut du script :

header("Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; frame-ancestors 'none';");

⚠ Adaptez les directives CSP à votre site. Commencez en mode Content-Security-Policy-Report-Only pour tester sans casser le site, puis passez en mode actif.

2. Strict-Transport-Security (HSTS)

Force le navigateur à utiliser uniquement HTTPS pendant la durée spécifiée. Protège contre les attaques de downgrade SSL.

Apache :

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

Nginx :

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

IIS :

<customHeaders>
  <add name="Strict-Transport-Security" value="max-age=31536000; includeSubDomains; preload" />
</customHeaders>

PHP :

header("Strict-Transport-Security: max-age=31536000; includeSubDomains; preload");

max-age=31536000 = 1 an. includeSubDomains applique la règle aux sous-domaines. preload permet l'inscription sur la liste HSTS preload des navigateurs. Assurez-vous que HTTPS fonctionne parfaitement avant d'activer.

3. X-Frame-Options

Empêche l'intégration de votre site dans une iframe, protégeant contre le clickjacking.

Apache :

Header always set X-Frame-Options "DENY"

Nginx :

add_header X-Frame-Options "DENY" always;

IIS :

<customHeaders>
  <add name="X-Frame-Options" value="DENY" />
</customHeaders>

PHP :

header("X-Frame-Options: DENY");

ℹ Valeurs possibles : DENY (bloque tout), SAMEORIGIN (autorise le même domaine), ALLOW-FROM uri (obsolète). Utilisez DENY sauf si vous avez besoin d'iframe sur votre propre domaine.

4. X-Content-Type-Options

Empêche le navigateur de deviner le type MIME d'un fichier (MIME sniffing), réduisant les risques d'exécution de contenu malveillant.

Apache :

Header always set X-Content-Type-Options "nosniff"

Nginx :

add_header X-Content-Type-Options "nosniff" always;

IIS :

<customHeaders>
  <add name="X-Content-Type-Options" value="nosniff" />
</customHeaders>

PHP :

header("X-Content-Type-Options: nosniff");
⚡ Configuration complète rapide

Ajoutez les 4 headers d'un coup :

Apache.htaccess :

<IfModule mod_headers.c>
  Header always set Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; frame-ancestors 'none';"
  Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
  Header always set X-Frame-Options "DENY"
  Header always set X-Content-Type-Options "nosniff"
</IfModule>

Nginx — bloc server :

add_header Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; frame-ancestors 'none';" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
add_header X-Frame-Options "DENY" always;
add_header X-Content-Type-Options "nosniff" always;

IISweb.config :

<system.webServer>
  <httpProtocol>
    <customHeaders>
      <add name="Content-Security-Policy" value="default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; frame-ancestors 'none';" />
      <add name="Strict-Transport-Security" value="max-age=31536000; includeSubDomains; preload" />
      <add name="X-Frame-Options" value="DENY" />
      <add name="X-Content-Type-Options" value="nosniff" />
    </customHeaders>
  </httpProtocol>
</system.webServer>

PHP — fichier commun (ex: init.php) :

header("Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; frame-ancestors 'none';");
header("Strict-Transport-Security: max-age=31536000; includeSubDomains; preload");
header("X-Frame-Options: DENY");
header("X-Content-Type-Options: nosniff");