Ćwiczenie przeglądu kodu · 8 MIN

Przejrzyj zmianę wygenerowaną przez AI

Sprawdź krótki endpoint. Zdecyduj, jakich dowodów potrzebujesz przed akceptacją zmiany.

Sytuacja

Asystent AI proponuje endpoint faktur. Zalogowany użytkownik może widzieć tylko faktury własnej organizacji. Przeglądasz zmianę przed wydaniem.

Co zrobić

  1. Przeczytaj kod i wyjaśnienie prostym językiem. Nie musisz go uruchamiać.
  2. Wybierz każdą kontrolę potrzebną przed akceptacją. Sprawdź odpowiedzi, przeczytaj powody i spróbuj ponownie, jeśli czegoś brakuje.
Potrzebujesz podstaw? Przeczytaj lekcję

Przeglądasz ten PR. Funkcja musi zwrócić fakturę tylko uwierzytelnionemu użytkownikowi tej samej organizacji. Fragment jest niepełny.

// 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);
});
Co robi kod?

Endpoint pobiera ID faktury z żądania, odczytuje fakturę, loguje ją w całości i zwraca. Fragment nie pokazuje, kto sprawdza prawo użytkownika do tej faktury.

Uwierzytelnianie sprawdza, kim jest użytkownik. Autoryzacja sprawdza, co może zrobić. Middleware to kod przetwarzający żądanie przed endpointem. Może zawierać kontrole nieobecne w tym fragmencie.

Wybierz wszystkie potrzebne działania review.

NA ZAKOŃCZENIE

Czy udane żądanie dowodzi bezpieczeństwa endpointu faktur?

Porównaj odpowiedź z wyjaśnieniem

Nie. Dowodzi działania jednego żądania. Potrzebujesz też dowodów, że użytkownik nie odczyta faktury innej organizacji. Sprawdź pełną ścieżkę żądania, zachowanie przy brakującym rekordzie i logowanie. Udany test musi obejmować istotne wymaganie.

Zastosuj w pracy

W następnym review PR-a dodaj test działania, które musi być odrzucone.

Wybierz inne ćwiczenie