Вправа перегляду коду · 8 хв
Перегляньте зміну, згенеровану ШІ
Перевірте короткий endpoint. Визначте, які докази потрібні до прийняття зміни.
Ситуація
Асистент ШІ пропонує 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 бере ID рахунку із запиту, отримує цей рахунок, записує весь рахунок у журнал і повертає його. Фрагмент не показує, хто перевіряє право користувача на цей рахунок.
Автентифікація перевіряє, хто користувач. Авторизація перевіряє, що користувач може робити. Middleware — код, що обробляє запит до цього endpoint. Він може містити перевірки, відсутні в цьому фрагменті.
ЩОБ ЗАВЕРШИТИ
Чи успішний запит доводить безпечність endpoint рахунків?
Порівняйте свою відповідь із поясненням
Ні. Він доводить, що один запит спрацював. Також потрібні докази, що користувач не може прочитати рахунок іншої організації. Перевірте повний шлях запиту, поведінку за відсутності запису та журналювання. Успішний тест має охоплювати важливу вимогу.
Застосуйте це в роботі
Під час наступного перегляду PR додайте один тест для дії, яку потрібно відхилити.
Вибрати іншу вправу