Упражнение за преглед на код · 8 мин

Прегледайте промяна, генерирана с AI

Прегледайте кратък endpoint. Решете какви доказателства са нужни, преди да приемете промяната.

Ситуацията

AI помощник предлага endpoint за фактури. Влязъл потребител трябва да вижда само фактури от собствената си организация. Преглеждате промяната, преди да може да бъде пусната.

Какво да направите

  1. Прочетете кода и обяснението му на разбираем език. Не е нужно да го изпълнявате.
  2. Изберете всяка проверка, нужна преди приемане. Проверете отговорите си, прочетете причините и опитайте отново, ако липсва проверка.
Нужни са Ви основните знания? Прочетете урока

Преглеждате този PR. Функцията трябва да връща фактура само на удостоверен потребител от същата организация. Откъсът е непълен.

// 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);
});
Какво прави кодът?

Endpoint-ът взема идентификатор на фактура от заявката, извлича фактурата, записва я цялата в журнала и я връща. Откъсът не показва кой проверява правото на потребителя за достъп до тази фактура.

Удостоверяването проверява кой е потребителят. Проверката на правата установява какво може да прави той. Middleware е код, който обработва заявката преди този endpoint. Той може да съдържа проверки, които липсват в откъса.

Изберете всички необходими действия за преглед.

ЗА ДА ЗАВЪРШИТЕ

Доказва ли успешна заявка, че endpoint-ът за фактури е безопасен?

Сравнете отговора си с обяснението

Не. Доказва, че една заявка е работила. Нужни са и доказателства, че потребител не може да чете фактура на друга организация. Прегледайте целия път на заявката, поведението при липсващ запис и логването. Успешен тест трябва да покрива важното изискване.

Използвайте това в работата си

При следващия преглед на PR добавете един тест за действие, което трябва да получи отказ.

Изберете друго упражнение