Portail ZAPP protège chaque page par une politique de sécurité du contenu (CSP) : le navigateur n'exécute que les scripts émis par l'application et ne charge images, polices, vidéos ou cadres que depuis les origines autorisées. Un script injecté par un tiers (contenu piégé, extension malveillante) est refusé.
Quand le navigateur refuse quelque chose, il le signale à l'application. La synthèse de ces signalements, réservée aux Administrateurs, est à l'adresse /administration/security/csp-reports.
Ce que montre la synthèse
La synthèse s'affiche au format JSON, lisible directement dans le navigateur. On y trouve :
mode:Enforce(la politique est appliquée : ce qui est signalé a été bloqué),Report(la politique est seulement mesurée : rien n'est bloqué, tout est signalé) ouOff;generatedAt: l'heure de la synthèse (UTC) ;dropped: le nombre de signalements écartés faute de place (la synthèse garde au plus 1 000 groupes ; les moins récents laissent la place aux nouveaux) ;entries: les violations regroupées, la plus fréquente d'abord.
Chaque groupe réunit les signalements identiques :
| Champ | Signification |
|---|---|
directive |
Le type de contenu refusé : script-src-elem (script), style-src (style), img-src (image), font-src (police), frame-src (cadre intégré), connect-src (appel réseau)… |
blocked |
Ce qui a été refusé : une origine (https://exemple.com), inline (code écrit dans la page) ou eval (code construit à la volée) |
page |
La page où c'est arrivé ; (externe) si le signalement vient d'une page hors de l'application |
module |
Le premier segment de la page (tickets, kb…), pour savoir quel module est concerné |
count, firstSeen, lastSeen |
Nombre d'occurrences, première et dernière fois |
sourceFile, line |
Le fichier et la ligne en cause, quand le navigateur les donne |
La synthèse est tenue en mémoire : elle repart de zéro à chaque redémarrage. Chaque nouveau groupe est aussi écrit dans le journal de l'application, qui en garde une trace.
Que faire d'une violation
Une synthèse vide est l'état normal. Pour chaque groupe listé :
- Une origine externe légitime (police d'un thème, hébergeur de vidéos, service de vérification humaine) : l'hébergeur de l'instance l'autorise côté serveur, dans la configuration
Security:Csp:Sources:<directive>:<n>(par exempleSecurity:Csp:Sources:font-src:0=https://fonts.gstatic.com). Seule une adressehttps://précise est acceptée ; il est impossible d'autoriser « tout ». Ce réglage ne se fait pas depuis l'interface. inlineouevalsur un écran de Portail ZAPP : l'écran est probablement cassé (un bouton ou un menu ne répond plus). Signalez-le au support avec la page, la directive, le fichier et la ligne.- Une origine inconnue : il peut s'agir d'une extension du navigateur d'un utilisateur, ou d'un contenu piégé que la politique a bloqué. Si la page affiche un contenu saisi par un utilisateur (article, ticket), vérifiez ce contenu.
(externe): signalement venu d'une page hors de l'application, sans conséquence pour elle.
Les signalements sont limités en nombre et en taille : un afflux ne peut pas saturer l'application.
Voir aussi
- « Surveiller l'instance » : état de l'instance et diagnostic support.