GraphQL security testing
Pentest GraphQL. Schema, resolvers, złożoność i role pod kontrolą.
Jeden endpoint nie oznacza małego zakresu. Powierzchnię GraphQL tworzą typy, pola, relacje, resolvers, mutacje i kombinacje zapytań dostępne dla każdej roli.
Krótka odpowiedź
Pentest GraphQL mapuje schemat i faktycznie osiągalne operacje, a następnie ręcznie sprawdza autoryzację na poziomie węzłów, krawędzi, pól, queries i mutations. Weryfikujemy również introspection, błędy, aliasy, batching, limity głębokości i kosztu, subscriptions oraz granice między gatewayem i usługami. Samo wyłączenie GraphiQL lub introspection nie zastępuje kontroli dostępu w resolverach.
Wycena bez czekania
Sprawdź koszt i termin od razu.
Trzy odpowiedzi wystarczą do natychmiastowej kwalifikacji. E-mail podajesz dopiero wtedy, gdy chcesz odpowiedzi eksperta.
Dla kogo
Kiedy ten zakres ma sens?
- Produkty korzystające z Apollo, Relay lub własnego serwera GraphQL
- SaaS z wieloma tenantami, rolami i typami danych
- GraphQL po migracji z REST albo zmianie schematu
- Federacje i gatewaye łączące kilka usług backendowych
Zakres testu
Co sprawdzamy?
Schema i powierzchnia
Queries, mutations, subscriptions, typy, pola, argumenty, dyrektywy, deprecated fields oraz operacje dostępne poza oficjalnym klientem.
Nodes, edges i resolvers
Autoryzacja bezpośredniego node lookup, relacji, globalnych identyfikatorów, resolverów pól i alternatywnych ścieżek do tego samego obiektu.
Mutations i dane wejściowe
Uprawnienia do operacji, nadmiarowe input fields, kolejność zmian, powtórzenia, wyścigi oraz walidacja danych przekazywanych do innych systemów.
Introspection i błędy
Ekspozycja schematu, GraphiQL lub playground, podpowiedzi nazw, stack traces, informacje diagnostyczne i różnice odpowiedzi ujawniające dane.
Aliasy, batching i koszt
Wiele operacji w jednym żądaniu, aliasy, zagnieżdżenia, fragmenty, paginacja, limity głębokości, analiza kosztu i odporność na automatyzację.
Subscriptions i federacja
Uwierzytelnienie połączenia, ponowna autoryzacja zdarzeń, separacja tenantów, gateway, subgraphy i zaufanie między usługami.
Rezultat
Co dostajesz?
- Mapa typów, operacji, ról i granic autoryzacji
- Zakres przypisany do wersji schematu i wdrożenia
- Minimalne queries lub mutations odtwarzające ustalenia
- Zalecenia dla resolverów, gatewaya i limitów kosztu
- Jeden retest uzgodnionych poprawek
Schema i konta
Otrzymujemy SDL, wynik introspection albo dostęp do środowiska, role testowe, przykładowe dane i opis najważniejszych operacji.
Model autoryzacji
Łączymy typy, pola, relacje i resolvers z własnością danych, tenantami oraz funkcjami dostępnymi dla każdej roli.
Test kombinacji
Sprawdzamy alternatywne ścieżki do obiektów, mutacje, aliasy, batching, złożoność i zachowanie subscriptions w kontrolowanych granicach.
Raport i retest
Wskazujemy resolver albo warstwę zaufania wymagającą poprawki, podajemy oczekiwany wynik i potwierdzamy jego egzekwowanie.
Cena i decyzja
Ile kosztuje pentest GraphQL?
Mały schemat z ograniczoną liczbą typów, dwóch ról i jednym środowiskiem kosztuje orientacyjnie 5 000-7 500 zł netto. Gotowy zakres może kwalifikować się do trybu 24H za 6 000-8 500 zł netto. Cenę zwiększają liczne relacje, federacja, subscriptions, wiele ról, rozbudowane mutacje i brak aktualnego schematu, a nie liczba endpointów HTTP.
Sprawdź własny zakres ↗FAQ
Najczęstsze pytania
Czy wyłączenie introspection zabezpiecza GraphQL?+
Nie. Ogranicza łatwość poznania schematu, ale nie naprawia BOLA, błędów resolverów, nadmiarowych pól, mutacji ani braku limitów kosztu. Autoryzacja musi działać dla każdego osiągalnego obiektu i pola.
Jak liczycie rozmiar GraphQL, skoro jest jeden endpoint?+
Bierzemy pod uwagę typy, pola wrażliwe, relacje, queries, mutations, subscriptions, role, tenanty, subgraphy i procesy biznesowe. Jeden adres HTTP może udostępniać setki różnych operacji.
Czy test obejmuje Apollo Federation?+
Tak, po uzgodnieniu gatewaya i subgraphów. Sprawdzamy spójność autoryzacji, reprezentacje encji, zaufanie do nagłówków i kontekstu oraz różnice między bezpośrednim dostępem do usługi i ruchem przez gateway.
Czy testujecie subscriptions i WebSocket?+
Tak, jeśli znajdują się w zakresie. Weryfikujemy uwierzytelnienie połączenia, autoryzację każdego zdarzenia, zmianę uprawnień w trakcie sesji i separację danych między użytkownikami.
Czy można przetestować GraphQL bez schematu?+
Można, ale rozpoznanie zajmie więcej czasu i może ograniczyć mierzalne pokrycie. Najlepszy wynik daje aktualny SDL albo wynik introspection, lista ról oraz zestaw danych testowych.