Вежба за преглед на код · 8 мин
Прегледајте промена генерирана со AI
Испитајте кратка крајна точка. Одлучете кои докази ви требаат пред да ја прифатите промената.
Ситуацијата
AI-помошник предлага крајна точка за фактури. Најавен корисник смее да гледа само фактури од сопствената организација. Ја прегледувате промената пред да може да се издаде.
Што да направите
- Прочитајте ги кодот и неговото објаснување на разбирлив јазик. Не мора да го извршите.
- Изберете ја секоја проверка потребна пред прифаќање. Проверете ги одговорите, прочитајте ги причините и обидете се повторно ако недостига проверка.
Го прегледувате овој 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);
});Што прави кодот?
Крајната точка зема идентификатор на фактура од барањето, ја презема таа фактура, ја бележи целата фактура и ја враќа. Извадокот не покажува кој го проверува правото на корисникот на оваа фактура.
Автентикацијата проверува кој е корисникот. Авторизацијата проверува што смее да прави. Middleware е код што го обработува барањето пред оваа крајна точка. Може да содржи проверки што не се прикажани во овој извадок.
ЗА ЗАВРШУВАЊЕ
Дали успешно барање докажува дека крајната точка за фактури е безбедна?
Споредете го одговорот со објаснувањето
Не. Докажува дека едно барање успеало. Ви требаат и докази дека корисник не може да прочита фактура од друга организација. Испитајте ги целосната патека на барањето, однесувањето кога записот недостига и бележењето. Успешен тест мора да го покрива барањето што е важно.
Користете го ова на работа
Во следниот PR-преглед, додајте еден тест за дејство што мора да биде одбиено.
Изберете друга вежба