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
- Leia o código e a explicação em linguagem corrente. Não precisa de o executar.
- 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.
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.
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