| Termin | Definicja |
|---|---|
| brak walidacji treści żądania | Brak walidacji treści żądania to luka bezpieczeństwa dopuszczająca przetworzenie niesprawdzonych danych przesłanych do API. Na czym polega brak walidacji treści żądaniaBrak walidacji treści żądania występuje wtedy, gdy aplikacja przyjmuje dane przesłane do interfejsu API i przekazuje je do dalszego przetwarzania bez sprawdzenia, czy mają oczekiwany format, typ, zakres oraz znaczenie. Treścią żądania może być między innymi dokument JSON, parametry formularza, dane przesłane metodą POST albo wartości umieszczone w parametrach adresu URL. Sam fakt, że żądanie dotarło do serwera i można je odczytać, nie oznacza, że zawiera poprawne dane wejściowe. Walidacja powinna odbywać się na granicy aplikacji, zanim dane trafią do logiki biznesowej, zapytania do bazy danych, modułu obsługi plików lub innego komponentu. Sprawdza się wtedy między innymi obecność wymaganych pól, ich typy, długość tekstu, dopuszczalne wartości, zakresy liczbowe, format daty oraz wzajemną zgodność pól. Dla przykładowego żądania tworzącego użytkownika można wymagać, aby nazwa była tekstem o określonej długości, identyfikator miał typ całkowity, a pole wyboru przyjmowało wyłącznie wartości z ustalonego zbioru. Skutki przyjmowania niesprawdzonych danychNiesprawdzone dane mogą powodować błędy wykonania, nieprzewidziane zmiany stanu aplikacji albo obejście reguł zapisanych w interfejsie użytkownika. Jeżeli aplikacja oczekuje liczby, a otrzymuje długi tekst, wartość pustą lub strukturę zagnieżdżoną, może dojść do wyjątku, nieprawidłowego przeliczenia albo zapisania uszkodzonych danych. Szczególnie istotne jest to, gdy serwer ufa informacjom, które powinny zostać wyliczone po stronie serwera, na przykład cenie, uprawnieniu, identyfikatorze właściciela lub statusie operacji. Brak walidacji może również zwiększać ryzyko podatności w innych komponentach. Dane przekazane dalej do zapytania SQL, polecenia systemowego, szablonu HTML, parsera XML lub mechanizmu zapisu pliku muszą być obsługiwane zgodnie z zasadami bezpieczeństwa właściwymi dla danego komponentu. Walidacja nie zastępuje parametryzacji zapytań, kodowania danych wyjściowych ani kontroli dostępu, ale ogranicza klasę niepoprawnych danych, które mogą dotrzeć do tych mechanizmów. Odrzucenie żądania powinno nastąpić przed wykonaniem operacji, a odpowiedź API powinna wskazywać błąd danych wejściowych bez ujawniania szczegółów implementacji. Walidacja schematu, reguł i wartościPraktycznym sposobem kontroli treści żądania jest zdefiniowanie schematu wejściowego. Schemat opisuje dozwolone pola, ich typy, wymagane właściwości oraz ograniczenia, takie jak minimalna i maksymalna długość tekstu. W przypadku JSON warto rozróżnić brak pola od pola obecnego z wartością null, a także od pustego tekstu. Należy określić, czy dodatkowe, nieznane pola są odrzucane, czy ignorowane. Cicha akceptacja nieznanych właściwości może ukrywać literówki albo umożliwiać przesłanie danych, których projekt aplikacji nie przewidywał. Sam schemat typów nie wystarcza do sprawdzenia logiki biznesowej. Osobno trzeba zweryfikować, czy data nie znajduje się poza dopuszczalnym okresem, czy liczba elementów nie przekracza limitu, czy wskazywany zasób istnieje oraz czy osoba wykonująca operację ma prawo go modyfikować. Kontrola dostępu powinna być wykonywana na podstawie tożsamości ustalonej przez serwer, a nie wyłącznie na podstawie identyfikatora przesłanego w żądaniu. Warto także ograniczać rozmiar całego żądania, liczbę elementów tablic oraz głębokość zagnieżdżenia struktur, ponieważ poprawna składniowo treść może nadal nadmiernie obciążać aplikację. Rozpoznanie i naprawa problemu w działającym APIDiagnostyka rozpoczyna się od ustalenia, które endpointy przyjmują dane z zewnątrz i gdzie następuje ich pierwsze użycie. Należy porównać dokumentację API z rzeczywistymi modelami wejściowymi, prześledzić obsługę błędów oraz sprawdzić, czy odrzucenie niepoprawnego żądania następuje przed zapisem lub wykonaniem operacji. Pomocne są testy obejmujące brakujące pola, nieprawidłowe typy, wartości ujemne, puste ciągi, nadmiernie długie teksty, nieznane właściwości i wielokrotne przesłanie tego samego żądania. Wynik powinien potwierdzać zarówno prawidłową odpowiedź dla danych poprawnych, jak i bezpieczne odrzucenie danych błędnych. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów i komputerów PC, w tym diagnostyką problemów z oprogramowaniem, aplikacjami oraz przepływem danych. W ramach analizy można sprawdzić objawy błędów aplikacji, komunikaty rejestrowane podczas żądań i zależności między urządzeniem użytkownika a usługą sieciową. Przy usuwaniu problemu istotne jest zachowanie kopii konfiguracji, ograniczenie zmian do rozpoznanej przyczyny oraz ponowne wykonanie testów po wdrożeniu walidacji, aby upewnić się, że poprawne żądania nadal są obsługiwane. |