Exercício de revisão de código · 8 MIN

Revise uma alteração gerada por IA

Inspecione um endpoint curto. Decida de quais evidências precisa antes de aceitar a alteração.

A situação

Um assistente de IA propõe um endpoint de faturas. Um usuário autenticado só deve ver faturas da própria organização. Você revisa a alteração antes que possa ser disponibilizada.

O que fazer

  1. Leia o código e sua explicação em linguagem simples. Não é necessário executá-lo.
  2. Selecione todas as verificações necessárias antes da aceitação. Confira as respostas, leia os motivos e tente novamente se faltar alguma verificação.
Precisa de contexto? Leia a lição

Você revisa este PR. A funcionalidade deve retornar uma fatura apenas a um usuário autenticado da mesma organização. O trecho está incompleto.

// 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);
});
O que o código faz?

O endpoint recebe um ID de fatura da requisição, busca a fatura, registra-a inteira em logs e a retorna. O trecho não mostra quem verifica o direito do usuário a essa fatura.

A autenticação verifica quem é o usuário. A autorização verifica o que ele pode fazer. Middleware é o código que processa a requisição antes deste endpoint. Pode conter verificações ausentes deste trecho.

Selecione todas as ações necessárias de revisão.

PARA CONCLUIR

Uma requisição bem-sucedida prova que o endpoint de faturas é seguro?

Compare sua resposta com a explicação

Não. Prova que uma requisição funcionou. Você também precisa de evidência de que um usuário não consegue ler a fatura de outra organização. Inspecione o caminho completo da requisição, o comportamento para registro ausente e os logs. Um teste bem-sucedido precisa cobrir o requisito importante.

Use no trabalho

Na próxima revisão de PR, acrescente um teste para uma ação que deve ser negada.

Escolher outro exercício