Exercice de revue de code · 8 MIN
Examiner une modification générée par l’IA
Examinez un endpoint court. Décidez des preuves nécessaires avant d’accepter la modification.
La situation
Un assistant IA propose un endpoint de factures. Un utilisateur connecté ne doit voir que les factures de sa propre organisation. Vous examinez la modification avant sa livraison.
Que faire
- Lisez le code et son explication en langage courant. Vous n’avez pas besoin de l’exécuter.
- Sélectionnez tous les contrôles nécessaires avant acceptation. Vérifiez vos réponses, lisez les raisons et réessayez s’il manque un contrôle.
Vous examinez cette PR. La fonctionnalité ne doit renvoyer une facture qu’à un utilisateur authentifié de la même organisation. L’extrait est incomplet.
// Fictional, incomplete example. Do not deploy.
app.get('/invoices/:id', async (req, res) => {
const invoice = await db.invoice.findUnique({
where: { id: req.params.id }
});
console.log('Invoice response', invoice);
return res.json(invoice);
});Que fait le code ?
L’endpoint prend un identifiant de facture dans la requête, récupère cette facture, la journalise entièrement et la renvoie. L’extrait ne montre pas qui vérifie le droit de l’utilisateur à cette facture.
L’authentification vérifie qui est l’utilisateur. L’autorisation vérifie ce qu’il peut faire. Le middleware traite la requête avant cet endpoint et peut contenir des contrôles absents de cet extrait.
POUR TERMINER
Une requête réussie prouve-t-elle que l’endpoint de factures est sûr ?
Comparer votre réponse à l’explication
Non. Elle prouve qu’une requête a fonctionné. Il faut aussi prouver qu’un utilisateur ne peut pas lire la facture d’une autre organisation. Examinez le parcours complet de la requête, le comportement en cas d’enregistrement absent et les journaux. Un test réussi doit couvrir l’exigence importante.
Appliquer au travail
Lors de votre prochaine revue de PR, ajoutez un test pour une action qui doit être refusée.
Choisir un autre exercice