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

  1. Loe koodi ja selle lihtsat selgitust. Sa ei pea seda käivitama.
  2. Vali iga enne vastuvõtmist vajalik kontroll. Kontrolli vastuseid, loe põhjendusi ja proovi uuesti, kui mõni kontroll puudub.
Vajad tausta? Loe õppetundi

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.

Vali kõik vajalikud ülevaatustegevused.

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