Вежба прегледа кода · 8 MIN
Прегледајте AI-генерисану промену
Испитајте кратак endpoint. Одлучите који докази су вам потребни пре прихватања измене.
Ситуација
AI асистент предлаже endpoint за фактуре. Пријављени корисник сме да види само фактуре своје организације. Прегледате измену пре него што може да се објави.
Шта да урадите
- Прочитајте код и његово објашњење једноставним језиком. Не морате да га покрећете.
- Означите све провере потребне пре прихватања. Проверите одговоре, прочитајте разлоге и покушајте поново ако нека провера недостаје.
Прегледате овај 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-а додајте један тест за радњу која мора да буде одбијена.
Изаберите другу вежбу