📄 regles_headers.json 🔒 856e12e9…3e923c5b Se connecter pour télécharger ← Retour
{
  "regles": [
    {
      "id": "HEADERS-CORS-WILDCARD-01",
      "theme": "cors",
      "niveau": "haute",
      "description": "Access-Control-Allow-Origin renvoie un joker (*) — autorise n'importe quelle origine à lire la réponse, y compris en présence d'identifiants si mal combiné.",
      "motif": "(?i)access-control-allow-origin[^\\n]{0,60}[\"']\\*[\"']",
      "action_recommandee": "Remplacer par une liste blanche d'origines explicites vérifiées côté serveur, jamais un joker sur une ressource authentifiée ou sensible."
    },
    {
      "id": "HEADERS-CORS-CREDENTIALS-VRAI-01",
      "theme": "cors",
      "niveau": "moyenne",
      "description": "Access-Control-Allow-Credentials activé — à vérifier qu'il n'est jamais combiné avec un joker sur Access-Control-Allow-Origin (combinaison invalide/dangereuse selon la spécification CORS).",
      "motif": "(?i)access-control-allow-credentials[^\\n]{0,40}(true|\"true\")",
      "action_recommandee": "Vérifier que Access-Control-Allow-Origin n'est jamais un joker (*) sur les mêmes réponses ; utiliser une origine explicite reflétée depuis une liste blanche."
    },
    {
      "id": "HEADERS-XFRAME-PERMISSIF-01",
      "theme": "clickjacking",
      "niveau": "moyenne",
      "description": "X-Frame-Options avec une valeur permissive ou obsolète (ALLOWALL, ALLOW-FROM *) — protection anti-clickjacking affaiblie ou inopérante selon les navigateurs.",
      "motif": "(?i)x-frame-options[^\\n]{0,60}(allowall|allow-from\\s*\\*)",
      "action_recommandee": "Utiliser DENY ou SAMEORIGIN, ou migrer vers frame-ancestors dans la Content-Security-Policy (support navigateur plus large et plus fiable)."
    },
    {
      "id": "HEADERS-COOKIE-INSECURE-EXPLICITE-01",
      "theme": "cookies",
      "niveau": "haute",
      "description": "Attribut de cookie de sécurité explicitement désactivé (secure(false) ou http_only(false)) — expose le cookie au vol via un canal non chiffré ou via du JavaScript côté client.",
      "motif": "(?i)\\.(secure|http_only)\\s*\\(\\s*false\\s*\\)",
      "action_recommandee": "Activer Secure et HttpOnly sur tout cookie de session ou sensible ; n'utiliser secure(false) que sur un environnement de développement local explicitement isolé."
    },
    {
      "id": "HEADERS-HSTS-MAX-AGE-NUL-01",
      "theme": "transport",
      "niveau": "moyenne",
      "description": "Strict-Transport-Security avec max-age=0 — désactive HSTS pour le domaine au lieu de forcer HTTPS, souvent un oubli de configuration de développement laissé en production.",
      "motif": "(?i)strict-transport-security[^\\n]{0,80}max-age=0\\b",
      "action_recommandee": "Utiliser un max-age élevé (ex. 31536000, un an) en production ; max-age=0 ne doit servir qu'à désactiver volontairement HSTS après un incident, jamais par défaut."
    },
    {
      "id": "HEADERS-REFERRER-POLICY-PERMISSIVE-01",
      "theme": "fuite_information",
      "niveau": "info",
      "description": "Referrer-Policy défini sur unsafe-url — transmet l'URL complète (y compris les paramètres de requête sensibles) même vers une origine tierce.",
      "motif": "(?i)referrer-policy[^\\n]{0,60}unsafe-url",
      "action_recommandee": "Préférer strict-origin-when-cross-origin (défaut moderne des navigateurs) ou no-referrer pour les pages sensibles."
    }
  ],
  "en_tetes_inventaire": [
    "X-Frame-Options",
    "X-Content-Type-Options",
    "Strict-Transport-Security",
    "Referrer-Policy",
    "Permissions-Policy"
  ],
  "extensions_scannees": [
    ".rs", ".py", ".js", ".ts", ".go", ".java", ".rb", ".php"
  ],
  "dossiers_ignores": [
    "target", "node_modules", ".git", "__pycache__", "dist", "build",
    "venv", ".venv", ".mypy_cache", ".pytest_cache", "vendor"
  ]
}
3.7 Ko BLAKE3 : 856e12e9…3e923c5b