Упражнение по code review · 8 MIN

Проверьте изменение, созданное 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. Он может содержать проверки, отсутствующие во фрагменте.

Выберите все необходимые действия review.

ДЛЯ ЗАВЕРШЕНИЯ

Доказывает ли успешный запрос безопасность endpoint счетов?

Сравните свой ответ с объяснением

Нет. Он доказывает, что один запрос сработал. Также нужны подтверждения, что пользователь не может прочитать счёт другой организации. Изучите полный путь запроса, поведение при отсутствии записи и логирование. Успешный тест должен охватывать важное требование.

Примените в работе

При следующем PR review добавьте один тест, который проверяет отклонение запрещённого действия.

Выбрать другое упражнение