Contrôle HTTPS et des en-têtes de sécurité

Vérifiez HTTPS et les en-têtes de sécurité : URL en http, contenu mixte, HSTS absent, formulaires et ressources non sécurisés, ainsi qu'une note des en-têtes pour une URL donnée.

Ce qu'elle fait

Par URL

security-check envoie une requête GET ordinaire. Il lit les en-têtes de réponse, les attributs des cookies et la redirection de http vers https. Six en-têtes de sécurité donnent une note de 0 à 100 et une lettre de A à F ; les en-têtes qui révèlent la version du serveur sont signalés. headers-check affiche à la place l'ensemble complet des en-têtes.

  • HSTS, CSP, X-Content-Type-Options, X-Frame-Options, Referrer-Policy et Permissions-Policy
  • Attributs des cookies : Secure et SameSite
  • Redirection de http vers https ou non
  • Sondage optionnel des chemins, désactivé par défaut

Sur un crawl

Pendant un crawl, chaque page est contrôlée pour détecter les ressources en http sur une page https, les formulaires envoyés vers http, les liens http et les en-têtes de sécurité absents. Les constats sont donnés page par page, avec l'URL qui les provoque.

  • Contenu mixte et ressources non sécurisées
  • Formulaires dont l'action pointe vers une URL en http://
  • Liens internes en http:// sur des pages https
  • HSTS, CSP, X-Content-Type-Options, X-Frame-Options et Referrer-Policy absents

Chemins exposés

Avec l'option --probe-paths, security-check vérifie aussi si des chemins de service, comme .git ou .env, répondent. C'est une étape supplémentaire volontaire, désactivée par défaut : même une requête en lecture seule vers un autre site doit être un choix. Ce n'est pas un test d'intrusion.

  • Désactivé par défaut
  • Lancé uniquement avec --probe-paths
  • Uniquement pour les sites que vous êtes autorisé à tester

Trois étapes, un seul scan enregistré

  1. Lire la réponse d'une URL

    security-check envoie une seule requête GET et lit les en-têtes de réponse, les attributs des cookies et la redirection de http vers https.

  2. Noter six en-têtes de sécurité

    HSTS, CSP, X-Content-Type-Options, X-Frame-Options, Referrer-Policy et Permissions-Policy donnent une note de 0 à 100 et une lettre de A à F.

  3. Repérer le contenu mixte sur un crawl

    Pendant un crawl, chaque page est contrôlée pour détecter les ressources en http, les cibles de formulaires non sécurisées et les en-têtes de sécurité absents ou répétés.

Contrôles de cette fonctionnalité

ContrôleSignificationGravitéPreuve
FORM_URL_INSECUREUn formulaire envoie ses données vers une action en http://, donc elles ne sont pas chiffréesCriticalURL de l'action du formulaire sur la page
HTTP_URLL'URL est servie en http au lieu de httpsImportantURL de la page
MIXED_CONTENTUne page https charge une ressource en httpImportantURL de la page et URL de la ressource en http
INSECURE_SUBRESOURCEUne page https charge une image, un script ou une feuille de style en httpImportantURL de la ressource et page qui la référence
MISSING_HSTSLa page n'envoie pas d'en-tête Strict-Transport-SecurityTipEn-têtes de réponse de la page
MISSING_CSPUne page HTML n'envoie pas d'en-tête Content-Security-PolicyTipEn-têtes de réponse de la page
MISSING_X_FRAME_OPTIONSLa page n'a ni X-Frame-Options ni la directive frame-ancestors de CSPTipEn-têtes de réponse de la page
DUPLICATE_SECURITY_HEADERUn en-tête de sécurité est envoyé plus d'une fois dans la même réponseTipNom de l'en-tête et réponse qui le répète
Aussi dans le registre des contrôles
HTTP_LINK_ON_HTTPSMISSING_X_CONTENT_TYPE_OPTIONSMISSING_REFERRER_POLICY

Une seule commande

bash
seohead security-check --url https://example.com/

Commencez par installer : guide d'installation. Chaque commande fonctionne aussi comme outil MCP pour les agents IA.

Ce qu'il vous faut

  • Une URL de page pour security-check
  • Un crawl pour les contrôles au niveau de la page
  • L'autorisation de tester le site si vous utilisez --probe-paths

Limites

  • L'outil vérifie qu'un en-tête est présent, pas que sa valeur est solide
  • Une URL donne une seule réponse : d'autres pages peuvent envoyer d'autres en-têtes
  • Ce n'est ni un test d'intrusion ni un scan de vulnérabilités
  • Permissions-Policy est noté par security-check, mais n'apparaît pas comme constat de crawl

Questions

Cela modifie-t-il quelque chose sur mon site ?
Non. security-check envoie des requêtes GET ordinaires et lit ce que le site envoie déjà. Le sondage de chemins comme .git ou .env est désactivé par défaut et ne se lance qu'avec --probe-paths.
Comment la note est-elle calculée ?
Chaque en-tête rapporte des points : HSTS 20, CSP 20, X-Content-Type-Options 15, X-Frame-Options 15, Referrer-Policy 15, Permissions-Policy 15. 90 points ou plus donnent A, 75 B, 60 C, 40 D, 20 E, et en dessous, F. Une directive frame-ancestors de CSP vaut pour X-Frame-Options.
Vérifie-t-il les valeurs des en-têtes ?
Non. Il vérifie que chaque en-tête est présent. Une CSP faible, mais présente, obtient tous les points.
Une seule commande lance-t-elle tous les contrôles de cette liste ?
Non. security-check porte sur une seule URL. Les contrôles au niveau de la page de cette liste viennent d'un crawl et apparaissent page par page dans les résultats du crawl.
Puis-je consulter les en-têtes d'un crawl enregistré ?
Oui. headers-analyze lit les en-têtes de réponse caviardés conservés dans un scan enregistré, sans envoyer aucune requête, et signale les constats sur les en-têtes de sécurité.