audit(ui): documenter la dépendance CSRF des formulaires
Some checks are pending
CI - Tests et Syntax / lint-and-test (push) Waiting to run

This commit is contained in:
root 2026-08-22 12:02:05 +00:00
parent f1e74d3fa5
commit 811c3a0773
3 changed files with 16 additions and 0 deletions

View file

@ -198,3 +198,14 @@
- Attendu : masquer le lien si l'accès est refusé, ou attribuer/vérifier la - Attendu : masquer le lien si l'accès est refusé, ou attribuer/vérifier la
permission réellement requise par la route. permission réellement requise par la route.
- Impact : incohérence UI/backend et perte de temps pour l'utilisateur. - Impact : incohérence UI/backend et perte de temps pour l'utilisateur.
## UI-021 — Certains formulaires planning dépendent de l'injection JavaScript du CSRF
- Priorité : P2
- URLs : `/planning/availability/closure/new`, `/planning/tasks/new`
- Résultat : le HTML initial ne contient pas de champ caché `csrf_token` ; le
jeton est ajouté par le JavaScript global. Une soumission sans JavaScript
reçoit bien 400, mais le formulaire ne peut alors pas être utilisé.
- Attendu : rendre le champ CSRF dans le formulaire serveur, tout en gardant
l'injection JS comme secours pour les requêtes dynamiques.
- Impact : dépendance inutile à JavaScript et accessibilité dégradée.

View file

@ -93,6 +93,9 @@ terminé.
`TEST_UI_*` créés, puis retrouvés dans `/prevention/` après redirection. `TEST_UI_*` créés, puis retrouvés dans `/prevention/` après redirection.
- Export DUERP : `/prevention/duerp.csv` répond 200 avec un CSV UTF-8 et un - Export DUERP : `/prevention/duerp.csv` répond 200 avec un CSV UTF-8 et un
nom de fichier de téléchargement correct. nom de fichier de téléchargement correct.
- Les formulaires de fermeture et de nouvelle tâche planning s'appuient sur
l'injection JavaScript du CSRF ; sans ce script, aucun champ caché n'est
présent et le serveur renvoie 400 (UI-021).
- API anonyme : `/api/v1/status`, `/api/v1/equipments` et - API anonyme : `/api/v1/status`, `/api/v1/equipments` et
`/api/v1/interventions` renvoient chacun 401 JSON avec un message `/api/v1/interventions` renvoient chacun 401 JSON avec un message
d'authentification, conformément au deny-by-default. d'authentification, conformément au deny-by-default.

View file

@ -39,6 +39,8 @@ l'intervention de test sans équipement.
- P2 : le lien Journaux est visible pour le compte d'audit mais `/logs/` - P2 : le lien Journaux est visible pour le compte d'audit mais `/logs/`
renvoie 403 ; le filtrage de menu et la permission de route doivent être renvoie 403 ; le filtrage de menu et la permission de route doivent être
alignés (UI-020). alignés (UI-020).
- P2 : certains formulaires planning ne rendent pas le champ CSRF côté
serveur et dépendent de JavaScript (UI-021).
- P2 : clarifier `/planning/availability`, qui reprend le titre et la - P2 : clarifier `/planning/availability`, qui reprend le titre et la
structure de `/planning/time`. structure de `/planning/time`.