xpeditis2.0/audit_security/VALIDATION.md

4.4 KiB

Preuves disponibles et reproductibilité

Résultats déjà observés

Ces résultats regroupent les passes antérieures et la reprise des corrections du 17 septembre.

Date Vérification Résultat et limite
9 septembre Correctifs initiaux, tests ciblés backend/frontend Le compte rendu initial détaille les contrôles par constat ; aucun test d'exploitation du site en ligne.
10 septembre Suite backend complète 451 réussis, 5 ignorés ; TLS/HTTP sur serveurs locaux, services métier simulés.
14 septembre Suite backend complète après les correctifs Stripe et droits 491 réussis, 5 ignorés ; 36 suites réussies, 1 ignorée.
14 septembre Compilation backend et lint ciblé Réussis sur l'état applicatif préalable à ce dossier.
14 septembre Stripe binding avant correction Deux cas de refus échouaient parce que GOLD était enregistré ; après correction, les six cas ciblés passent.
14 septembre Matrice domaine/garde avant correction 12 cas de refus échouaient, 7 contrôles légitimes passaient ; les 19 passent après correction.
17 septembre Suite backend complète après corrections des logs et frais 512 réussis, 5 ignorés ; 40 suites réussies, 1 ignorée.
17 septembre Compilation, lint ciblé, parsing YAML, liens documentaires Réussis ; aucune connexion à la production.

Les cinq tests ignorés ne sont pas comptés comme réussis. Les chiffres de suites unitaires ne constituent pas une couverture de code mesurée ni une réussite des tests d'intégration contre PostgreSQL/Redis réels.

Principaux artefacts

Les liens précis figurent dans les fiches. Ils couvrent notamment :

  • Propriété et rôles : refus hors organisation, refus VIEWER en création et lecture conservée, refus d'un USER sur la liste globale, protection des cibles ADMIN.
  • Sessions : type access sur WebSocket, compte actif, expiration, changement de mot de passe invalidant les anciens tokens et maintien des usages légitimes.
  • Notifications : rejet des objets/tableaux/UUID invalides et prédicat {id,user_id} sur un repository simulé. Pas de preuve d'une mise à jour globale exécutée sur une vraie base.
  • Transporteur : absence du token dans le mapper de réponse, données métier conservées. Le test ne vérifie pas l'effacement des anciens tokens ni les logs résiduels SEC-07.
  • CSV : encodage des préfixes de formule et taille excessive rejetée avant le service. Pas d'ouverture réelle dans Excel ni test de saturation mémoire.
  • TLS : véritables handshakes locaux PostgreSQL avec certificat de test ; options SMTP et refus STARTTLS avant AUTH sur serveur local. Pas de vérification du certificat SMTP du fournisseur.
  • Abonnements : annulation malgré licences surnuméraires, erreur webhook non acquittée comme succès, liaison Checkout à l'organisation, droits courants et révocation d'accès API après suspension.

Relancer des tests dans un environnement de développement

Les commandes ci-dessous sont des recettes pour les tests existants, à lancer depuis la racine du dépôt sur un environnement isolé déjà configuré. Elles ne sont pas des exploitations de production et n'ont pas été exécutées de nouveau pour ce README.

npm test --prefix apps/backend -- --runInBand subscription-sync.security.spec.ts subscription-access.security.spec.ts
npm test --prefix apps/backend -- --runInBand api-keys-entitlement.security.spec.ts mcp-entitlement.security.spec.ts
npm test --prefix apps/backend -- --runInBand organizations.controller.spec.ts users.security.spec.ts notification.security.spec.ts

Certains tests HTTP/TLS ouvrent des ports sur loopback et demandent un environnement autorisant cette opération. Ne pas remplacer les doubles de Stripe, SMTP ou de base par des identifiants réels pour obtenir une prétendue preuve plus forte. Ne pas lancer automatiquement les configurations frontend chargeant des fichiers .env sans respecter les restrictions du projet.

Vérifications propres au dossier

La vérification documentaire porte sur l'existence des fiches et liens locaux, la séparation entre constats et observations, les extraits relus et l'absence de valeurs de secrets copiées. Aucun validateur formel de rapports fourni par le projet n'a été utilisé. Aucune nouvelle relecture indépendante des fiches n'a pu être menée après la limite d'usage de délégation.