Упражнение по code review · 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 review добавьте один тест, который проверяет отклонение запрещённого действия.
Выбрать другое упражнение