Koodiülevaatuse harjutus · 8 MIN
Vaata AI genereeritud muudatus üle
Uuri lühikest lõpp-punkti. Otsusta, milliseid tõendeid vajad enne muudatuse vastuvõtmist.
Olukord
AI-assistent pakub arve lõpp-punkti. Sisseloginud kasutaja peab nägema ainult oma organisatsiooni arveid. Vaatad muudatust enne väljalaske lubamist üle.
Mida teha
- Loe koodi ja selle lihtsat selgitust. Sa ei pea seda käivitama.
- Vali iga enne vastuvõtmist vajalik kontroll. Kontrolli vastuseid, loe põhjendusi ja proovi uuesti, kui mõni kontroll puudub.
Vaatad seda PR-i üle. Funktsioon peab tagastama arve ainult sama organisatsiooni autenditud kasutajale. Väljavõte on puudulik.
// 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);
});Mida kood teeb?
Lõpp-punkt võtab päringust arve ID, hangib selle arve, logib kogu arve ja tagastab selle. Väljavõte ei näita, kes kontrollib kasutaja õigust sellele arvele.
Autentimine kontrollib, kes kasutaja on. Autoriseerimine kontrollib, mida kasutaja võib teha. Middleware on kood, mis töötleb päringut enne seda lõpp-punkti. See võib sisaldada väljavõttest puuduvaid kontrolle.
LÕPETAMISEKS
Kas edukas päring tõendab arve lõpp-punkti ohutust?
Võrdle oma vastust selgitusega
Ei. See tõendab ühe päringu toimimist. Vajad ka tõendeid, et kasutaja ei saa teise organisatsiooni arvet lugeda. Uuri kogu päringuteed, puuduva kirje käitumist ja logimist. Edukas test peab katma olulist nõuet.
Kasuta seda tööl
Lisa järgmises PR-i ülevaatuses üks test tegevusele, mis tuleb keelata.
Vali teine harjutus