Préparer deux fiches fictives
Cet exemple est un exercice sur le papier. Tous les comptes, clients, contrats et montants ci-dessous sont fictifs. Vous pouvez reprendre les cas dans votre projet d’apprentissage, puis consigner les résultats réels.
| Compte d’exercice | Fiche client autorisée | Numéro de contrat | Montant |
|---|---|---|---|
| A | A-001 | HT-A-01 | 10000 CNY |
| B | B-001 | HT-B-01 | 20000 CNY |
La première version permet, après connexion, de chercher un contrat par numéro de fiche, uniquement parmi les fiches autorisées pour le compte. Elle ne prévoit ni création, ni modification, ni export.
Comment le problème pourrait se produire
Supposons que la page demande une connexion, mais que l’API ne filtre que par numéro saisi. A cherche A-001 et reçoit son contrat ; en cherchant B-001, il reçoit aussi celui de B.
Dans cette hypothèse, la requête ne limite pas le périmètre des données. Afficher seulement les clients de A dans la page ne protège pas l’API : une requête peut être modifiée ou envoyée autrement.
Organiser la lecture sur le serveur
- Tirer l’identité courante d’une session de connexion déjà vérifiée. Sans connexion, refuser la lecture des informations restreintes.
- Chercher le numéro demandé dans le périmètre autorisé pour cette identité. Ne pas faire confiance à une identité que la requête fournit elle-même.
- Si aucune fiche n’est consultable, renvoyer un message sans contenu de contrat. La page peut indiquer « Aucune information accessible trouvée ».
Dans un vrai système, les droits peuvent dépendre d’une personne, d’une équipe ou d’autres règles métier. Écrivez ces règles avant de choisir structure des données et mise en œuvre.
Plan de test après modification
Il s’agit d’un plan de test avec résultats attendus, à exécuter réellement dans votre projet d’exercice.
| État de connexion et action | Résultat attendu |
|---|---|
| A cherche A-001 | HT-A-01, montant 10000 CNY |
| A cherche B-001 | Aucun contrat ni montant de B |
| B cherche B-001 | HT-B-01, montant 20000 CNY |
| B cherche A-001 | Aucun contrat ni montant de A |
| Sans connexion, requête directe pour A-001 | Lecture refusée, aucun contenu de contrat |
| A demande B-001 directement, sans passer par la page | Droits toujours appliqués, aucune donnée de B |
| A saisit un numéro inexistant | Message clair, aucun autre contrat |
Conservez rôle du compte, entrée et résultat réel de chaque essai. Examinez aussi la réponse entière : elle pourrait contenir des fiches que la page n’affiche pas. Lire seulement le texte visible peut masquer un excès de données renvoyées par l’API.
Appliquer la règle aux nouveaux accès
Si vous ajoutez recherche, export ou questions à une IA, vérifiez que tous ces accès respectent le même périmètre. Les documents que l’IA peut lire avant de répondre doivent eux aussi dépendre des droits du système.
Ces cas portent surtout sur la lecture entre comptes. Le projet complet doit aussi examiner, selon ses fonctions, traitement des entrées, droits de modification, journaux, déploiement et sauvegardes. La liste avant publication aide à compléter les points utiles ; commencez le besoin par le cadrage sur une page.
Questions fréquentes
Est-ce un vrai projet client ?
Comment peut-on voir les données d’autrui alors qu’il y a une connexion ?
À lire ensuite
- Diagnostiquer un problème — Partir du parcours et de l’environnement
- Vérifier avant la mise en ligne — Compléter selon les fonctions
- Vibe Coding et autres tâches — Besoin, exécution, vérification et réutilisation