Exercițiu de verificare a codului · 8 min

Verificați o modificare generată de AI

Inspectați un endpoint scurt. Decideți ce dovezi sunt necesare înainte de acceptarea modificării.

Situația

Un asistent AI propune un endpoint pentru facturi. Un utilizator autentificat trebuie să vadă numai facturile propriei organizații. Verificați modificarea înainte de lansare.

Ce trebuie să faceți

  1. Citiți codul și explicația sa în limbaj obișnuit. Nu trebuie să îl rulați.
  2. Selectați fiecare verificare necesară înainte de acceptare. Verificați răspunsurile, citiți motivele și încercați din nou dacă lipsește o verificare.
Aveți nevoie de context? Citiți lecția

Verificați acest PR. Funcția trebuie să returneze o factură numai unui utilizator autentificat din aceeași organizație. Fragmentul este 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);
});
Ce face codul?

Endpoint-ul preia un identificator de factură din cerere, obține factura, o înregistrează integral în loguri și o returnează. Fragmentul nu arată cine verifică dreptul utilizatorului asupra acestei facturi.

Autentificarea verifică cine este utilizatorul. Autorizarea verifică ce poate face utilizatorul. Middleware-ul este cod care prelucrează cererea înaintea acestui endpoint. Poate conține verificări care lipsesc din fragment.

Selectați toate acțiunile de verificare necesare.

PENTRU ÎNCHEIERE

O cerere reușită dovedește că endpoint-ul de facturi este sigur?

Comparați răspunsul cu explicația

Nu. Dovedește că o cerere a funcționat. Aveți nevoie și de dovezi că un utilizator nu poate citi factura altei organizații. Inspectați traseul complet al cererii, comportamentul la o înregistrare lipsă și logarea. Un test reușit trebuie să acopere cerința care contează.

Folosiți acest lucru la muncă

La următoarea verificare de PR, adăugați un test pentru o acțiune care trebuie refuzată.

Alegeți alt exercițiu