Słownik
OWASP Top 10
OWASP Top 10 - co to jest, lista kategorii edycji 2025 z opisem po polsku, zmiany względem edycji 2021 i jak korzystać z listy przy testach aplikacji.
Słownik
IDOR (Insecure Direct Object Reference) to podatność, w której aplikacja zwraca lub zmienia obiekt - np. fakturę, dokument czy konto - na podstawie identyfikatora z żądania, bez sprawdzenia, czy użytkownik ma do niego prawo. Zmiana numeru w adresie lub w zapytaniu API wystarcza, by zobaczyć cudze dane.
IDOR to błąd kontroli dostępu. Aplikacja przyjmuje od użytkownika identyfikator obiektu - numer faktury, nazwę pliku, numer konta - i na jego podstawie zwraca albo zmienia dane. Sprawdza przy tym, czy użytkownik jest zalogowany, ale nie sprawdza, czy ten konkretny obiekt należy do niego. OWASP opisuje to krótko: aplikacja daje bezpośredni dostęp do obiektów na podstawie danych przekazanych przez użytkownika.
Skutki bywają poważne: jeden zalogowany klient może przeglądać dane wszystkich pozostałych, zmieniając numer w kolejnych żądaniach.
Identyfikator obiektu może trafiać do serwera na kilka sposobów:
/api/invoices/10482,?documentId=7731,accountId,IDOR dotyczy nie tylko odczytu. Ten sam błąd w operacjach zapisu pozwala zmienić adres dostawy innego klienta, anulować cudze zamówienie albo usunąć cudzy dokument. Zwykle chodzi o eskalację poziomą - dostęp do danych innego użytkownika w tej samej roli. Gdy zwykły użytkownik wywołuje funkcję administratora, mówimy o błędzie autoryzacji na poziomie funkcji (w API: BFLA).
Poniższy przykład jest demonstracyjny - adres i dane są fikcyjne. Klient A jest zalogowany i ogląda swoją fakturę o numerze 10481. W żądaniu zmienia numer na 10482:
GET /api/invoices/10482 HTTP/1.1
Host: app.firma.example
Authorization: Bearer [token klienta A]
Serwer odpowiada fakturą klienta B:
HTTP/1.1 200 OK
Content-Type: application/json
{"id": 10482, "customer": "Klient B", "issued": "2026-09-14", "items": 3}
Poprawnie zabezpieczona aplikacja odpowiedziałaby błędem 403 albo 404, bo faktura 10482 nie należy do klienta A. Ten sam błąd w operacji zapisu może wyglądać tak:
PATCH /api/orders/55120/address HTTP/1.1
Host: app.firma.example
Authorization: Bearer [token klienta A]
Content-Type: application/json
{"street": "Testowa 1", "city": "Wrocław"}
Jeśli serwer przyjmie tę zmianę dla cudzego zamówienia, atakujący przekieruje dostawę innego klienta.
OWASP WSTG v4.2 opisuje ten test jako WSTG-ATHZ-04. Kluczowe jest użycie co najmniej dwóch kont: tester tworzy lub odczytuje obiekty na jednym koncie i próbuje dostać się do nich z drugiego - zamiast zgadywać identyfikatory. W teście grey box prosimy zwykle o dwa konta w każdej roli, a każde żądanie z identyfikatorem sprawdzamy dla odczytu, zmiany i usunięcia, w każdej wersji API i w każdym miejscu, w którym identyfikator może się pojawić.
Skaner podatności rzadko wykrywa IDOR, bo nie wie, który obiekt należy do którego użytkownika - odpowiedź z cudzymi danymi wygląda dla niego jak poprawne działanie aplikacji.
Powagę IDOR ocenia się zwykle w skali CVSS. W przykładzie z fakturami wektor CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N daje wynik 6.5 (Medium), ale w ocenie kontekstowej priorytet rośnie, gdy faktury zawierają dane osobowe i dane transakcji innych klientów.
IDOR sprawdzamy w każdym teście z kontami użytkowników - zobacz testy penetracyjne aplikacji webowych i testy bezpieczeństwa API, gdzie ten sam błąd nazywa się BOLA. Dlaczego oferta bez kont testowych może go przeoczyć, wyjaśniamy w artykule jak porównać oferty na testy penetracyjne.
W praktyce to ta sama klasa błędu opisana w dwóch listach OWASP. Nazwa IDOR jest używana przy aplikacjach webowych (OWASP WSTG, kategoria Broken Access Control w OWASP Top 10:2025), a BOLA, czyli Broken Object Level Authorization, to pierwsze ryzyko na liście OWASP API Security Top 10 2023 - ten sam błąd w endpointach API.
Utrudniają zgadywanie, ale nie usuwają podatności. Identyfikatory trafiają do adresów, logów, wiadomości e-mail i odpowiedzi API, więc atakujący może je zdobyć w innym miejscu aplikacji. OWASP zaleca sprawdzanie uprawnień przy każdym dostępie do obiektu - niezależnie od tego, jak trudny do odgadnięcia jest identyfikator.
Zwykle nie. Skaner nie wie, który obiekt należy do którego użytkownika, więc odpowiedź 200 OK z cudzymi danymi wygląda dla niego jak poprawne działanie aplikacji. IDOR wykrywa się w teście z co najmniej dwoma kontami - najlepiej po dwa w każdej roli.
Słownik
OWASP Top 10 - co to jest, lista kategorii edycji 2025 z opisem po polsku, zmiany względem edycji 2021 i jak korzystać z listy przy testach aplikacji.
Testy penetracyjne · Aplikacje webowe
Testy penetracyjne aplikacji webowych według OWASP WSTG v4.2 - uwierzytelnianie, uprawnienia, logika biznesowa i API. Raport z dowodami, CVSS i retest.
Testy penetracyjne · API
Testy bezpieczeństwa API według OWASP API Security Top 10 2023 - autoryzacja obiektów, OAuth 2.0, JWT, GraphQL i webhooki. Raport z dowodami i retestem.
Opisz krótko, czego potrzebujesz - wrócimy z propozycją kolejnych kroków.
lub zadzwoń pod numer +48 575 621 877