Le livrable, concrètement
Du constat technique à la décision.
Lire le risque, comprendre la preuve, choisir le correctif et vérifier son résultat. Explorez trois défauts de sécurité dans un laboratoire fictif.
Périmètre de l’exemple
Portail Atelier.
Un portail interne avec des documents RH privés, une console d’administration et un module de commande.
- Comptes et rôles distincts
- Documents cloisonnés
- Contrôles côté serveur
Chaque résultat est simulé à des fins pédagogiques. Aucune mission client n’est présentée.
Un salarié accède aux salaires de ses collègues.
Dans le portail d’une même entreprise, un salarié du service commercial peut ouvrir le fichier de paie réservé aux RH en changeant le numéro du document dans la requête. Être connecté ne lui donne pas ce droit.
Modifier l’identifiant du document dans une requête authentifiée, puis vérifier les droits sur la ressource retournée.
Le fichier RH est lisible avec un simple compte commercial.
Impact illustréConfidentialité : les noms et salaires des collègues deviennent accessibles à une personne qui n’est pas habilitée à les consulter.
La requête révèle le défaut.
GET /api/documents/204200 OK · fichier de paie divulgué- 01Se connecter avec le compte de démonstration d’un salarié du service commercial.
- 02Remplacer le numéro d’un document commercial autorisé par celui du fichier de paie réservé aux RH.
- 03Constater que le serveur retourne les salaires alors que ce compte n’a aucun droit RH.
Vérifier le droit sur ce document.
Vérifier côté serveur que le compte dispose du droit de lecture sur ce document précis. L’accès au portail et l’appartenance à la même entreprise ne suffisent pas.
- Contrôle des droits sur chaque document demandé, et pas seulement de la connexion.
- Refus sans contenu ni métadonnée RH pour les comptes non habilités.
- Tests de régression avec un compte RH, un commercial et un compte sans session.
Protéger les RH. Garder leur accès.
GET /api/documents/204403 Forbidden · document RH protégé- Compte RH habilité200 · autorisé
- Salarié commercial403 · refusé
- Compte sans session401 · refusé
Ces résultats illustrent le re-test attendu. Ils ne correspondent pas à des tests réalisés chez un client.
Un bouton caché ne protège pas un export.
Le bouton d’export des comptes est masqué pour les utilisateurs standards. Pourtant, l’API exécute leur demande d’export, car elle ne vérifie pas le rôle du compte.
Appeler directement une fonction d’administration avec un compte standard, même lorsque son bouton est masqué.
L’interface masque l’action, mais le serveur livre quand même l’export.
Impact illustréConfidentialité : export de données de comptes depuis une fonction d’administration.
La requête révèle le défaut.
GET /api/admin/users/export200 OK · export accessible- 01Se connecter avec un compte disposant uniquement du rôle standard.
- 02Appeler directement l’endpoint d’export de la console d’administration.
- 03Constater que masquer le bouton n’empêche pas l’API de retourner les données.
Contrôler la fonction côté serveur.
Centraliser les autorisations côté serveur et exiger le droit d’export sur l’endpoint d’administration.
- Refus par défaut pour les fonctions privilégiées.
- Contrôle du rôle et du droit spécifique avant d’exécuter l’export.
- Tests des endpoints d’administration pour chaque niveau de privilège.
Réserver l’export au bon rôle.
GET /api/admin/users/export403 Forbidden · rôle insuffisant- Administrateur autorisé200 · autorisé
- Utilisateur standard403 · refusé
- Session absente ou expirée401 · refusé
Le périmètre du re-test réel dépend des accès fournis et des corrections disponibles. Les limites sont consignées dans le rapport.
Le prix du panier ne se décide pas dans le navigateur.
Un article coûte 120 € au catalogue. Le navigateur envoie le montant de la commande et le serveur lui fait confiance : un acheteur peut le remplacer par 1 € et créer une commande à ce prix.
Modifier le montant envoyé par le navigateur pour vérifier si le serveur le reprend ou le recalcule depuis son catalogue.
Le montant modifié dans le navigateur devient le prix de la commande.
Impact illustréIntégrité commerciale : une commande est enregistrée avec un montant non autorisé. Cet exemple s’arrête avant tout paiement réel.
La requête révèle le défaut.
POST /api/orders
{ "productId": "AT-120", "quantity": 1, "unitPrice": 1 }201 Created · commande à 1 €- 01Ajouter au panier l’article fictif affiché à 120 €.
- 02Modifier le prix transmis par le navigateur à 1 €, sans changer le produit ni la quantité.
- 03Observer la commande créée à 1 € : le serveur a utilisé une valeur fournie par le client.
Recalculer depuis le catalogue.
Calculer le total côté serveur depuis le catalogue et les remises autorisées. Les montants transmis par le navigateur ne constituent jamais la référence du prix.
- Catalogue et règles de remise comme source des prix côté serveur.
- Validation des quantités et des remises applicables au compte.
- Montant cohérent entre commande et demande de paiement.
Facturer le montant autorisé.
POST /api/orders
{ "productId": "AT-120", "quantity": 1, "unitPrice": 1 }201 Created · prix recalculé à 120 €- Prix navigateur modifié à 1 €120 € · recalculé
- Quantité négative422 · refusée
- Remise autorisée de 10 %108 € · calculé
Montants et article fictifs. Les règles de TVA, de remise et de paiement d’une application réelle demandent des cas de test adaptés.
Lire un rapport
Quatre lectures, une même décision.
Synthèse
Un impact compréhensible par la direction et une priorité justifiée.
Preuve
Les conditions et la requête qui permettent de reproduire le constat.
Correction
La règle de sécurité à rétablir et les contrôles à ajouter.
Re-test
Les cas rejoués, les résultats observés et les limites de vérification.
Ce que le livrable complet ajoute à cet aperçu
Le périmètre autorisé, les dates et accès de test, les critères de gravité, les références techniques, les preuves détaillées et les limites de couverture. L’exemple HTML téléchargeable développe les trois scénarios : Document RH confidentiel, Export réservé aux administrateurs, Prix de commande modifié.
La prochaine étape
Un livrable adapté à votre équipe.
Direction, développeurs ou cabinet partenaire : cadrons les tests et le format de restitution utiles à votre mission.