audit(ui): documenter la dépendance CSRF des formulaires
Some checks are pending
CI - Tests et Syntax / lint-and-test (push) Waiting to run
Some checks are pending
CI - Tests et Syntax / lint-and-test (push) Waiting to run
This commit is contained in:
parent
f1e74d3fa5
commit
811c3a0773
3 changed files with 16 additions and 0 deletions
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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`.
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue