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
- Citiți codul și explicația sa în limbaj obișnuit. Nu trebuie să îl rulați.
- 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.
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.
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