PD-19 — Review de spécification (Gate 3 v2)¶
Contexte¶
Review v2 après correction des 4 écarts critiques et 7 majeurs identifiés en v1. Spécification v2 et tests v2 alignés.
Point 1¶
Type : Incohérence Spec↔Tests Référence : Spécification §4 (INV-11), §6 (ERR-01/ERR-04) ; Tests §2 (Matrice de couverture), §5 (Scénarios d'erreur) Description : L'invariant INV-11 impose les security headers sur toute réponse d'erreur produite par les mécanismes CORS/headers/limitation. Dans les tests v2, la vérification explicite des headers en erreur est contractualisée pour 404/405/500 (TC-ERR-02), mais pas explicitement pour les refus CORS (Origin non autorisée) ni pour 429 de rate limiting. Impact : Une partie de l'invariant transversal n'est pas démontrée de manière contractuelle ; risque de conformité partielle non détectée en validation. Gravité : Majeur
Point 2¶
Type : Non testable Référence : Spécification §4 (INV-06) ; Tests §3 (Données et paramètres), §5 (TC-ERR-03) Description : INV-06 contractualise la clé de comptage via IP client résolue par chaîne de proxy de confiance, avec repli sur adresse source directe. Les tests couvrent l'isolation multi-IP, mais ne rendent pas explicitement testable la résolution "proxy de confiance vs fallback source directe", ni le comportement face à en-têtes proxy incohérents/spoofés. Impact : Le mécanisme déterminant de calcul de la clé de limitation n'est pas entièrement vérifiable ; risque de faux positifs/faux négatifs en production et de contournement. Gravité : Majeur
Point 3¶
Type : Ambiguïté Référence : Spécification §4 (INV-01), §7 (CA-01) ; Tests §4 (TC-NOM-01, TC-NOM-02, TC-NOM-05) Description : Le "socle" INV-01 contient des éléments conditionnels (HSTS en dev HTTPS seulement, Cache-Control selon sensibilité), alors que CA-01 parle d'un socle présent sur "toute réponse HTTP" via middleware global. La frontière entre "socle universel" et "conditions d'application" est implicite mais non explicitée dans le critère. Impact : Risque d'interprétation divergente lors de l'audit (assertions trop strictes ou trop permissives selon les équipes). Gravité : Mineur
Synthèse¶
| Gravité | Nombre |
|---|---|
| Bloquant | 0 |
| Majeur | 2 |
| Mineur | 1 |
Amélioration significative par rapport à v1 (qui avait 5 Bloquants + 8 Majeurs + 1 Mineur).
Document produit par le workflow de gouvernance IA — Gate 3 v2 Phase 1 (Review ChatGPT gov-factual) Date : 2026-02-09