📄 regles_csp.json 🔒 85266fc7…2e44b6ac Se connecter pour télécharger ← Retour
{
  "regles": [
    {
      "id": "CSP-INLINE-EVENT-HANDLER-01",
      "theme": "csp_script",
      "niveau": "haute",
      "description": "Gestionnaire d'événement HTML inline (onclick/onload/...) — bloqué par toute CSP script-src sans 'unsafe-inline', et risque XSS si la valeur provient d'une donnée utilisateur.",
      "motif": "(?i)\\son(click|load|change|submit|mouseover|mouseout|keydown|keyup|focus|blur|input|dblclick|contextmenu|error)\\s*=\\s*\\\\?['\"]",
      "action_recommandee": "Déplacer la logique dans un fichier .js externe et attacher l'écouteur via addEventListener — voir feedback_csp_onclick_inline_interdit."
    },
    {
      "id": "CSP-JAVASCRIPT-URI-01",
      "theme": "csp_script",
      "niveau": "haute",
      "description": "URI de schéma javascript (pseudo-protocole) dans un attribut href/src — équivalent fonctionnel d'un script inline, bloqué par CSP et vecteur XSS classique.",
      "motif": "(?i)(?:href|src)\\s*=\\s*\\\\?['\"]\\s*javascript[:]",
      "action_recommandee": "Remplacer par un vrai lien/ressource, ou un gestionnaire d'événement externe si une action JS est réellement nécessaire."
    },
    {
      "id": "CSP-INLINE-STYLE-ATTR-01",
      "theme": "csp_style",
      "niveau": "moyenne",
      "description": "Attribut style=\"...\" inline — bloqué par toute CSP style-src sans 'unsafe-inline' (à moins d'utiliser un nonce/hash dédié).",
      "motif": "(?i)\\sstyle\\s*=\\s*\\\\?['\"]",
      "action_recommandee": "Déplacer la règle dans une feuille de style externe (classe CSS) plutôt qu'un attribut style inline."
    },
    {
      "id": "CSP-MIXED-CONTENT-HTTP-01",
      "theme": "contenu_mixte",
      "niveau": "moyenne",
      "description": "Ressource chargée en http:// non chiffré (hors localhost/127.0.0.1) — signalé par Lighthouse (\"Uses HTTPS\"/contenu mixte) et bloqué par le navigateur si la page est servie en HTTPS.",
      "motif": "(?i)(?:href|src)\\s*=\\s*\\\\?['\"]\\s*http://(?!localhost|127\\.0\\.0\\.1)",
      "action_recommandee": "Charger la ressource en https:// ou en URL relative/protocol-relative."
    },
    {
      "id": "CSP-INLINE-STYLE-BLOCK-01",
      "theme": "csp_style",
      "niveau": "info",
      "description": "Bloc <style> inline dans le document — Lighthouse recommande d'externaliser le CSS pour la mise en cache navigateur ; nécessite aussi 'unsafe-inline' ou un nonce/hash côté CSP style-src.",
      "motif": "(?i)<style(\\s|>)",
      "action_recommandee": "Envisager d'externaliser vers un fichier .css dédié si le bloc n'est pas généré dynamiquement pour une raison spécifique."
    }
  ],
  "extensions_scannees": [".html", ".htm", ".js", ".css", ".rs"],
  "dossiers_ignores": [
    "target", "node_modules", ".git", "__pycache__", "dist", "build",
    "venv", ".venv", ".mypy_cache", ".pytest_cache", "vendor"
  ]
}
2.8 Ko BLAKE3 : 85266fc7…2e44b6ac