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

Reveja uma alteração gerada por IA

Examine um endpoint curto. Decida que evidências precisa de obter antes de aceitar a alteração.

A situação

Um assistente de IA propõe um endpoint de faturas. Um utilizador com sessão iniciada só pode ver faturas da sua própria organização. Está a rever a alteração antes de poder ser lançada.

O que fazer

  1. Leia o código e a explicação em linguagem corrente. Não precisa de o executar.
  2. Selecione todas as verificações necessárias antes da aceitação. Verifique as respostas, leia as razões e tente novamente se faltar uma verificação.
Precisa de contexto? Leia a lição

Está a rever este PR. A funcionalidade só deve devolver uma fatura a um utilizador autenticado da mesma organização. O excerto 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 faz o código?

O endpoint recebe um ID de fatura do pedido, obtém essa fatura, regista-a por completo nos logs e devolve-a. O excerto não mostra quem verifica o direito do utilizador a essa fatura.

A autenticação verifica quem é o utilizador. A autorização verifica o que pode fazer. O middleware é código que processa o pedido antes deste endpoint. Pode conter verificações ausentes deste excerto.

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

PARA CONCLUIR

Um pedido bem-sucedido prova que o endpoint de faturas é seguro?

Compare a sua resposta com a explicação

Não. Prova que um pedido funcionou. Também precisa de evidências de que um utilizador não consegue ler a fatura de outra organização. Examine o percurso completo do pedido, o comportamento perante registos inexistentes e os logs. Um teste bem-sucedido tem de abranger o requisito relevante.

Use isto no trabalho

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

Escolher outro exercício