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

  1. Lisez le code et son explication en langage courant. Vous n’avez pas besoin de l’exécuter.
  2. 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.
Besoin du contexte ? Lisez la leçon

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.

Sélectionnez toutes les actions de revue nécessaires.

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