Coraz częściej słyszę, że testerzy nie powinni już skupiać się tylko na funkcjonalności, a bezpieczeństwo aplikacji staje się po prostu kolejnym wymiarem jakości. I w pełni się z tym zgadzam. Użytkownik końcowy nie interesuje się tym, kto zawalił — deweloper, tester czy architekt — jeśli coś wycieknie albo ktoś przejmie jego konto, to w oczach użytkownika aplikacja jest po prostu dziurawa.
Dlatego OWASP Top 10 to coś, co każdy tester powinien znać na pamięć. To zestaw najczęstszych, najgroźniejszych podatności w aplikacjach webowych, które regularnie aktualizuje społeczność security. I choć nie każdy musi być pentesterem, warto umieć spojrzeć na aplikację również pod kątem bezpieczeństwa — a OWASP Top 10 daje do tego świetny punkt wyjścia.
Poniżej zebrałem dla Was nie tylko opis każdej pozycji, ale też moje własne praktyczne wskazówki, które sam wykorzystuję w codziennej pracy. Jeśli myślisz poważnie o roli testera w 2025 roku, to lektura obowiązkowa

1️⃣ Broken Access Control
O co chodzi?
Chodzi o sytuacje, w których użytkownik może zrobić w aplikacji coś, do czego absolutnie nie powinien mieć prawa. Klasyka to dostęp do danych innego użytkownika po podmienieniu ID w URL.
Jak to wyłapać?
warto ręcznie próbować podmieniać identyfikatory zasobów (np. ID zamówień)
testować różne role użytkowników — czy zwykły user może wywołać endpointy admina
w API warto pokusić się o automatyczne testy autoryzacji, np. wysyłając token z ograniczonymi uprawnieniami
Mój protip:
Zawsze próbuję przetestować, co się stanie, jeśli w żądaniu ręcznie wpiszę rolę wyższą niż moja — zaskakująco często działa.
2️⃣ Cryptographic Failures
O co chodzi?
To ogólnie wszystkie problemy z szyfrowaniem: brak HTTPS, słabe algorytmy, klucze w kodzie, hasła w plain text — znacie to na pewno.
Jak to wyłapać?
czy aplikacja wymusza HTTPS
czy nie przesyła loginów w otwartym tekście
czy w bazie nie ma hasła w jawnej postaci
Mój protip:
Podczas testów zawsze próbuję wymusić downgrade na HTTP — wiele aplikacji tego nie blokuje, a to prosta droga do przechwycenia danych.
3️⃣ Injection
O co chodzi?
To typ podatności, gdzie atakujący może „wstrzyknąć” do aplikacji niechciane zapytania — np. SQL, NoSQL, czy polecenia systemowe.
Jak to wyłapać?
używam klasycznych payloadów (np.
' OR 1=1 --)staram się testować nie tylko formularze, ale też parametry w API, nagłówki
obserwuję komunikaty błędów — czasem same w sobie zdradzają za dużo
Mój protip:
Injection w JSON? Tak, to możliwe — nie ograniczaj się tylko do SQL, bo API REST lub GraphQL też mogą być podatne.
4️⃣ Insecure Design
O co chodzi?
Tu problem pojawia się już na etapie projektowania — funkcjonalność niby działa, ale nikt nie przewidział podstawowych scenariuszy bezpieczeństwa.
Jak to wyłapać?
zadawać pytania typu „a co jeśli ktoś spróbuje obejść ten flow?”
testować scenariusze nietypowe, np. cofnięcie się w przeglądarce, wygaśnięte tokeny
patrzeć krytycznie na wymagania
Mój protip:
Lubię w testach sprawdzić, co się stanie, gdy użytkownik zmieni hasło — czy stare sesje nadal działają? Zaskakująco często tak.
5️⃣ Security Misconfiguration
O co chodzi?
To wszelkie złe ustawienia — frameworku, serwera, samej aplikacji — które otwierają drzwi atakującemu.
Jak to wyłapać?
sprawdzam nagłówki bezpieczeństwa
patrzę na komunikaty błędów — nie powinny pokazywać stack trace
zaglądam też do środowisk stagingowych, bo tam często deweloperzy zostawiają „otwarte wrota”
Mój protip:
Poproś czasem DevOpsa o wspólny przegląd konfiguracji — testerzy rzadko to robią, a to kopalnia wiedzy.
6️⃣ Vulnerable and Outdated Components
O co chodzi?
Używamy zależności, bibliotek, frameworków — a one też mogą mieć podatności. Jeśli ich nie aktualizujemy, to sami zapraszamy atakujących.
Jak to wyłapać?
pytam o listę paczek w projekcie
skanuję narzędziami typu OWASP Dependency-Check
sprawdzam, czy zespół ma w ogóle politykę aktualizacji
Mój protip:
Jeśli nie ma polityki aktualizacji — wpisz to w swoje ryzyka projektowe. Naprawdę warto.
7️⃣ Identification and Authentication Failures
O co chodzi?
Problemy z logowaniem i sesjami — za proste hasła, brak limitu prób, sesje nie wygasają.
Jak to wyłapać?
testuję logowanie na złe hasła kilkadziesiąt razy
sprawdzam MFA
patrzę na zarządzanie tokenami — czy wygasają po wylogowaniu
Mój protip:
Podmiana JWT na inny — wielu devów nie zabezpiecza tej ścieżki i można obejść autoryzację.
8️⃣ Software and Data Integrity Failures
O co chodzi?
Brak weryfikacji integralności aktualizacji czy komponentów — otwarta furtka do ataków supply chain.
Jak to wyłapać?
pytam o podpisy cyfrowe
weryfikuję sposób wdrażania kodu
patrzę, skąd projekt pobiera zależności
Mój protip:
Zajmij się też CI/CD — to coraz częstszy wektor ataku, a testerzy rzadko tam zaglądają.
9️⃣ Security Logging and Monitoring Failures
O co chodzi?
Brak logów lub ich kiepska jakość. Skutkuje tym, że atak może przejść niezauważony.
Jak to wyłapać?
sprawdzam, czy logowane są nieudane próby logowania
testuję alertowanie — czy ktoś w ogóle dostaje powiadomienia o incydencie
zaglądam, co trafia do logów — nie powinny być tam hasła czy tokeny
Mój protip:
Poproś, żeby pokazano Ci reguły alertów — często są napisane tylko „na papierze” i nie działają w praktyce.
🔟 Server-Side Request Forgery (SSRF)
O co chodzi?
Atakujący zmusza serwer, żeby wykonał żądanie do innego zasobu, np. zasobu wewnętrznego, do którego normalnie nie ma dostępu.
Jak to wyłapać?
testuję podając adresy lokalne (
127.0.0.1,169.254.*.*)sprawdzam, czy aplikacja ma whitelistę dozwolonych hostów
próbuję skierować ruch do infrastruktury wewnętrznej
Mój protip:
Warto to automatyzować, ale ręczne próby są nieocenione — niektóre systemy reagują tylko na bardzo specyficzne formaty adresów.
Podsumowanie
Podsumowując — OWASP Top 10 to nie jest jakaś nudna lista do odhaczenia, tylko tak naprawdę fundament testerskiego podejścia do bezpieczeństwa. Jeśli nie masz tej wiedzy, to w 2025 roku możesz mieć problem na rynku — wymagania rosną i nic nie wskazuje, żeby to się miało zmienić.
Sam traktuję te dziesięć punktów jak checklistę, do której wracam regularnie. Dzięki temu nie zapominam o zagrożeniach, które mogą zniszczyć nawet najlepszą aplikację. I Tobie też to polecam.
