← Wszystkie łamigłówki
Warsztat decyzji · Publikacja codzienna / 2026

Cache zna raport, ale nie klienta. Co zobaczy najemca B?

Rozpoznaj ryzyko, podejmij decyzję i porównaj swój tok myślenia z analizą seniora. W wybranych ćwiczeniach zadasz też pytanie mentorowi AI.

CEL ĆWICZENIAUzasadnij granicę awarii.Szacowany czas: 8–12 minut
01SCENARIUSZZaawansowany

Co wiemy?

**Przykład fikcyjny.** Aplikacja SaaS obsługuje wiele firm. Token zawiera identyfikator użytkownika i klienta, a brama sprawdza podpis oraz ważność tokenu. Raporty mają numery nadawane osobno w każdej firmie, więc zarówno klient A, jak i B mogą mieć raport `42`.

Endpoint `GET /reports/42` najpierw szuka wyniku we wspólnym cache pod kluczem `report:42`. Dopiero przy braku wpisu wykonuje zapytanie do bazy z filtrem po kliencie. Użytkownik A otwiera swój raport i wypełnia cache. Chwilę później uprawniony użytkownik klienta B żąda własnego raportu `42` i otrzymuje odpowiedź z cache. Zespół odpowiada: „Przecież autoryzację sprawdza gateway”.

Pytanie do Ciebie

Gdzie została przerwana izolacja klientów? Jak zmienisz autoryzację, klucz cache i testy, aby poprawka obejmowała całą ścieżkę, a nie tylko ten jeden endpoint?

Za co mentor ocenia odpowiedź?

Wynik jest wskazówką do nauki, nie oceną zawodowych kompetencji.

  • Autoryzacja zasobu
  • Przestrzeń kluczy
  • Obrona warstwowa
  • Stare wpisy i uprawnienia
  • Test negatywny
Zobacz pytania naprowadzające
  • Czy poprawny token dowodzi prawa do konkretnego raportu?
  • Które elementy identyfikują raport jednoznacznie w całym systemie?
  • Czy kontrola dostępu jest wykonywana także przy trafieniu w cache?
  • Jak test z dwoma klientami i tym samym lokalnym numerem wykryje regresję?
02TWOJA DECYZJA

Jak Ty byś to rozwiązał?

Wpisz decyzję, najważniejszy argument i sposób jej sprawdzenia. Możesz najpierw napisać wersję roboczą.

0 / 4000 znakówMinimum 40 znaków do oceny
Jak przetwarzamy dane?

Odpowiedź zostanie wysłana do mentora AI w celu przygotowania informacji zwrotnej. Nie wpisuj danych poufnych.

03ANALIZA SENIORA

Porównaj tok rozumowania

Pełna analiza jest dostępna również bez oceny AI.

04ZABIERZ ZAPIS DECYZJI
Przykładowy ADR · fikcyjna sytuacja

Jak zapisać decyzję po ćwiczeniu?

To jedna możliwa decyzja, a nie gotowa recepta ani zatwierdzenie projektu. Porównaj ją ze swoją odpowiedzią i uzupełnij pytania otwarte.

Status
Przykład do dyskusji — nie jest zatwierdzoną decyzją projektu
Kontekst
Raporty mają identyfikatory lokalne dla klienta, a wspólny cache pomija kontekst klienta i może zwrócić wpis przed kontrolą zasobu.
Decyzja
Kontekst klienta będzie ustalany z zaufanej tożsamości, sprawdzany dla zasobu i włączony do każdej przestrzeni kluczy oraz zapytania.
Uzasadnienie
Izolacja musi obowiązywać jednakowo przy trafieniu w cache i przy odczycie z bazy.
Konsekwencje
  • Konieczne jest usunięcie lub wersjonowanie istniejących wpisów.
  • Testy przekrojowe muszą objąć pozostałe cache, eksporty, wyszukiwanie i zadania asynchroniczne.
Jak sprawdzimy decyzję?
Automatyczny test z dwoma klientami i kolidującymi identyfikatorami po rozgrzaniu cache, zmianie roli i unieważnieniu dostępu.
Pytania otwarte
  • Czy inne komponenty tworzą klucze bez kontekstu klienta?
  • Czy logi pozwalają ustalić zakres ewentualnego ujawnienia bez utrwalania danych raportu?
Pobierz przykładowy ADR (.md) ↓
POWIĄZANA WIEDZA

Co warto przeczytać po ćwiczeniu?