Aller au contenu principal

Générateur d’en-têtes de sécurité

Configurez les en-têtes HTTP de sécurité à partir d’un modèle équilibré, strict ou compatible : HSTS (max-age, includeSubDomains, preload), X-Content-Type-Options, Referrer-Policy, Permissions-Policy, COOP, CORP, COEP et X-Frame-Options, avec sortie brute, Nginx et Apache et alertes de configuration.

  • Presse-papiers

Intégrer ce widget

Personnalisez le rendu, vérifiez l’aperçu puis copiez le code.

Aperçu

Type de code d’intégration

Code à copier

Responsive et redimensionné automatiquement par Bethemesh.

Modèle

Strict-Transport-Security (HSTS)

Activer X-Content-Type-Options: nosniff

Referrer-Policy

Une directive par ligne ou séparée par une virgule.

En-têtes HTTP

En-têtes HTTP

Configuration Nginx

Configuration Apache

Cet outil vous a-t-il été utile ?

Comment fonctionne cet outil ?

Ce générateur produit les en-têtes HTTP de sécurité qu’on attend d’un site en production : HSTS, nosniff, Referrer-Policy, Permissions-Policy, isolation cross-origin et protection contre l’intégration en iframe. Il s’adresse aux développeurs et administrateurs qui veulent une configuration Nginx ou Apache cohérente et expliquée, plutôt qu’un copier-coller trouvé au hasard.

Chaque en-tête couvre un risque précis. `Strict-Transport-Security: max-age=31536000; includeSubDomains` (RFC 6797) oblige le navigateur à n’utiliser que HTTPS pendant un an ; la liste preload de hstspreload.org exige en plus au moins 31536000 secondes, includeSubDomains et preload. `X-Content-Type-Options: nosniff` interdit au navigateur de deviner le type MIME d’une réponse. `Referrer-Policy: strict-origin-when-cross-origin` ne transmet que l’origine aux autres sites. `Permissions-Policy: camera=(), microphone=(), geolocation=()` désactive ces API pour la page et ses iframes.

Les en-têtes d’isolation fonctionnent ensemble : `Cross-Origin-Opener-Policy: same-origin` sépare votre fenêtre des pop-ups d’autres origines, `Cross-Origin-Resource-Policy` restreint qui peut charger vos ressources, et `Cross-Origin-Embedder-Policy: require-corp` (ou credentialless) n’accepte que les ressources qui l’autorisent explicitement ; COOP + COEP rendent la page « cross-origin isolated », condition pour SharedArrayBuffer. X-Frame-Options (DENY ou SAMEORIGIN) bloque l’intégration en iframe contre le clickjacking. L’outil produit ces en-têtes en texte brut, en directives Nginx `add_header … always;` et Apache `Header always set …`, et signale un HSTS inférieur à 180 jours, un preload sans includeSubDomains, une Referrer-Policy trop bavarde, l’absence de nosniff ou de protection anti-iframe.

Comment utiliser cet outil ?

  1. Choisissez un modèle

    Partez d’Équilibré (chargé par défaut), Strict ou Compatible : tous les champs sont préremplis avec ses valeurs.

  2. Ajustez chaque en-tête

    Réglez HSTS (activation, max-age en secondes, sous-domaines, preload), nosniff, Referrer-Policy, X-Frame-Options, COOP, CORP, COEP et saisissez les directives Permissions-Policy, une par ligne ou séparées par des virgules.

  3. Générez et copiez

    Cliquez sur « Générer les en-têtes », lisez les alertes puis copiez ou exportez la version brute, Nginx ou Apache.

Cas d'utilisation

Obtenir un A sur un scanner d’en-têtes

Securityheaders.com ou Mozilla Observatory signalent des en-têtes manquants : générez le modèle Équilibré, ajoutez-le à votre bloc server Nginx et relancez l’analyse.

Préparer une inscription à la liste HSTS preload

Vérifiez que max-age atteint au moins un an et que includeSubDomains et preload sont présents avant de soumettre le domaine sur hstspreload.org.

Activer SharedArrayBuffer ou le multithreading WebAssembly

Le modèle Strict combine COOP same-origin et COEP require-corp, les deux en-têtes nécessaires pour qu’une page soit cross-origin isolated.

Exemples

Quatre en-têtes HTTP de protection

Entrée

Activer HSTS : oui ; Durée max-age (secondes) : 31536000 ; Inclure les sous-domaines : oui ; Demander le preload : non ; Activer X-Content-Type-Options: nosniff : oui ; Referrer-Policy : strict-origin-when-cross-origin ; X-Frame-Options : DENY

Résultat

Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options: nosniff
Referrer-Policy: strict-origin-when-cross-origin
X-Frame-Options: DENY
Aucun avertissement

Conseils et bonnes pratiques

  • Avec Nginx, un `add_header` placé dans un bloc location annule tous ceux hérités du bloc server : répétez les en-têtes de sécurité dans chaque location qui en définit.
  • Commencez HSTS avec un max-age court (300 s puis une semaine) si des sous-domaines ne sont pas encore en HTTPS : une valeur longue ou le preload se retirent difficilement.
  • Activez COEP require-corp seulement après avoir vérifié vos ressources tierces (images, polices, vidéos) : celles qui n’envoient pas de CORP ou de CORS seront bloquées.

Sources et références

Questions fréquentes

Quels en-têtes de sécurité HTTP un site doit-il avoir ?

La base recommandée par OWASP comprend Strict-Transport-Security, Content-Security-Policy, X-Content-Type-Options: nosniff, Referrer-Policy, une protection anti-iframe (X-Frame-Options ou frame-ancestors) et, selon les besoins, Permissions-Policy et les en-têtes COOP/CORP/COEP. La CSP se génère à part, avec le générateur de CSP.

Quelle valeur max-age choisir pour HSTS ?

Un an (31536000 secondes) est la valeur courante et le minimum exigé pour la liste preload ; deux ans (63072000) est souvent recommandé. Pendant une migration, commencez court et augmentez progressivement, car le navigateur mémorise la règle pour toute la durée indiquée.

Faut-il encore ajouter X-XSS-Protection ?

Non. Le filtre XSS des navigateurs a été retiré et OWASP recommande de ne pas envoyer cet en-tête (ou de le mettre à 0), car il a pu introduire des failles. La protection moderne contre les XSS passe par une Content Security Policy, c’est pourquoi l’outil ne le propose pas.

X-Frame-Options DENY ou SAMEORIGIN ?

DENY interdit toute intégration de vos pages en iframe ; SAMEORIGIN l’autorise uniquement depuis votre propre origine, utile pour un back-office ou un éditeur qui s’affiche lui-même en iframe. La valeur ALLOW-FROM est obsolète : pour autoriser un domaine précis, utilisez frame-ancestors dans la CSP.

Pourquoi mes images ou polices sont-elles bloquées après avoir ajouté COEP ?

Cross-Origin-Embedder-Policy: require-corp refuse toute ressource d’une autre origine qui n’envoie pas Cross-Origin-Resource-Policy ou des en-têtes CORS. Demandez au fournisseur d’ajouter ces en-têtes, chargez la ressource avec crossorigin, ou utilisez la valeur credentialless, plus tolérante.

Comment ajouter ces en-têtes sur Nginx ou Apache ?

Sur Nginx, collez les lignes `add_header … always;` dans le bloc server (le mot always les envoie aussi sur les réponses d’erreur), puis rechargez avec `nginx -t && nginx -s reload`. Sur Apache, activez mod_headers et placez les lignes `Header always set …` dans le VirtualHost ou un .htaccess.

Outils associés

Des outils similaires ou complémentaires à celui-ci.

Outils similaires

Construisez une Content Security Policy directive par directive, avec header HTTP, balise meta et alertes.

Sécurité & confidentialitéUtiliser l’outil

Analysez des en-têtes HTTP pour vérifier la sécurité, le cache, CORS et les cookies d’une réponse.

Sécurité & confidentialitéUtiliser l’outil