Przejdź do treści
Wróć do usług

To przykład na fikcyjnych danych. Możesz go wypróbować; nic nie zostanie wysłane ani kupione.

FPracownia FormaRaport z przeglądu bezpieczeństwa
Mikołaj MikołajczakMM

Portal klienta: przegląd bezpieczeństwa

Zakres: logowanie, panel klienta i pobieranie faktur. Testy na kopii portalu, 7–11 października 2026.

Ustalenia
3
Naprawione i sprawdzone
2
Do decyzji
1
  1. Gdzie
    Panel klienta, faktury
    Jak to sprawdziłem
    Zalogowałem się jako klient A i w adresie faktury zmieniłem numer na fakturę klienta B.
    Co to oznacza dla firmy
    Każdy zalogowany klient mógł pobrać faktury innych osób: imiona, adresy i kwoty. To wyciek danych osobowych, który trzeba zgłosić do UODO w ciągu 72 godzin.
    Poprawka
    Serwer sprawdza teraz, czy faktura należy do zalogowanego klienta, zanim ją wyda.
    Test
    portal.forma.pl/faktury/1044
    Brak dostępu do tej faktury

    Klient A widzi tylko swoje faktury. Własna faktura nadal się otwiera.

    Zmiana w kodzie dla zespołu
    const invoice = await db.invoice.findUnique({  where: { id: params.id },});const invoice = await db.invoice.findFirst({  where: { id: params.id, customerId: session.customerId },});if (!invoice) return forbidden();
Ryzyko: wysokieNaprawione i sprawdzone

Klient mógł otworzyć fakturę innego klienta

Gdzie
Panel klienta, faktury
Jak to sprawdziłem
Zalogowałem się jako klient A i w adresie faktury zmieniłem numer na fakturę klienta B.
Co to oznacza dla firmy
Każdy zalogowany klient mógł pobrać faktury innych osób: imiona, adresy i kwoty. To wyciek danych osobowych, który trzeba zgłosić do UODO w ciągu 72 godzin.
Poprawka
Serwer sprawdza teraz, czy faktura należy do zalogowanego klienta, zanim ją wyda.
Test
portal.forma.pl/faktury/1044
Brak dostępu do tej faktury

Klient A widzi tylko swoje faktury. Własna faktura nadal się otwiera.

Zmiana w kodzie dla zespołu
const invoice = await db.invoice.findUnique({  where: { id: params.id },});const invoice = await db.invoice.findFirst({  where: { id: params.id, customerId: session.customerId },});if (!invoice) return forbidden();
Przegląd obejmuje uzgodniony zakres i stan portalu w dniach testów. Nie jest certyfikatem.

Chcesz wiedzieć, jak bezpieczna jest Twoja aplikacja?

Chcesz wiedzieć, czy Twoja aplikacja jest bezpieczna? Napisz, co mam sprawdzić i czy przygotowujesz premierę.

Ty wybierasz, co zapamiętuję.

Niezbędne cookies obsługują konto i zapis prób. Jeśli chcesz, możesz włączyć analitykę publicznych stron i pamięć zaproszenia do newslettera. Sam newsletter wymaga osobnego zapisu. Szczegóły w polityce prywatności.

List z warsztatu

Podeślę Ci
coś ciekawego.

Co jakiś czas podeślę Ci nowe materiały o IT i dam znać o kursach. Jeśli masz ochotę, zostaw swój e-mail.

Zapis aktywuje się dopiero po potwierdzeniu adresu. Bezpłatnie, bez obowiązku zakupu. Konto kursanta ma osobne zgody.