| Termin | Definicja |
|---|---|
| brak autoryzacji żądania | Brak autoryzacji żądania to usterka bezpieczeństwa, w której operacja jest wykonywana bez wymaganej weryfikacji uprawnień. Brak autoryzacji żądania a uwierzytelnienie użytkownikaBrak autoryzacji żądania oznacza sytuację, w której aplikacja otrzymuje operację, ale nie potrafi potwierdzić, że nadawca ma prawo ją wykonać. W praktyce trzeba odróżnić uwierzytelnienie od autoryzacji. Uwierzytelnienie odpowiada na pytanie, kto wysyła żądanie, natomiast autoryzacja określa, do jakich zasobów i działań ten użytkownik może uzyskać dostęp. Sam fakt zalogowania nie oznacza więc automatycznie prawa do każdej operacji. Problem może pojawić się w aplikacji internetowej, programie korzystającym z usługi sieciowej albo kliencie mobilnym. Przykładem jest żądanie HTTP wysłane bez nagłówka Kody HTTP, tokeny i zakres uprawnieńW komunikacji HTTP brak danych potrzebnych do uwierzytelnienia często sygnalizuje się kodem 401 Unauthorized. Nazwa tego kodu bywa myląca, ponieważ w praktyce wskazuje przede wszystkim na brak poprawnych danych uwierzytelniających, takich jak token lub sesja. Kod 403 Forbidden oznacza natomiast, że serwer rozpoznał nadawcę, lecz odmawia wykonania operacji z powodu niewystarczających uprawnień. Rozróżnienie tych odpowiedzi pomaga ustalić, czy należy odświeżyć logowanie, czy zmienić zakres dostępu. Token dostępu może zawierać informacje o podmiocie, czasie ważności i zakresie operacji, ale aplikacja nie powinna zakładać, że sam tekst tokenu jest wystarczającym dowodem uprawnienia. Serwer musi zweryfikować jego podpis lub poprawność względem mechanizmu, który token wydał, sprawdzić termin ważności oraz zaakceptować tylko wymagane zakresy, często nazywane scopes. Jeżeli token jest przeznaczony dla innego odbiorcy, został unieważniony albo nie obejmuje określonego zasobu, żądanie powinno zostać zatrzymane. Typowe przyczyny odrzucenia operacjiNa komputerze użytkownika komunikat o braku autoryzacji może wynikać z wygaśnięcia sesji po dłuższej bezczynności, usunięcia plików cookie, nieprawidłowego zegara systemowego albo przerwania procesu logowania. Przy tokenach opartych na czasie nawet niewielka różnica między zegarem urządzenia a zegarem usługi może powodować uznanie tokenu za jeszcze nieważny lub już wygasły. Znaczenie ma także domena i ścieżka ciasteczka, ponieważ przeglądarka nie wysyła go do każdego adresu. Inną przyczyną jest pomieszanie kont lub środowisk. Program może wysyłać żądanie do właściwego adresu, ale z poświadczeniami zapisanymi dla innego użytkownika, organizacji albo profilu. Błąd może również powstać po zmianie hasła, wylogowaniu na innym urządzeniu, zmianie uprawnień konta lub aktualizacji aplikacji, która zaczęła korzystać z innego mechanizmu sesji. W przypadku formularzy internetowych odrzucenie może być związane także z brakiem albo niezgodnością tokenu CSRF, który zabezpiecza operację zmieniającą dane przed żądaniem wysłanym z nieuprawnionego kontekstu. Podczas analizy należy porównać adres żądania, metodę HTTP, kod odpowiedzi, obecność nagłówków uwierzytelniających oraz moment wygaśnięcia sesji. Nie powinno się ujawniać pełnych tokenów w logach, zrzutach ekranu ani zgłoszeniach, ponieważ mogą działać jak tymczasowe poświadczenia. Bezpieczniejsze jest zapisanie kodu odpowiedzi, nazwy operacji i skróconego identyfikatora żądania. Jeżeli tylko jedna funkcja odmawia dostępu, a pozostałe działają poprawnie, bardziej prawdopodobny jest problem zakresu uprawnień lub konfiguracji konkretnego zasobu niż ogólna awaria połączenia. Sprawdzenie działania aplikacji na komputerzePodstawowa diagnostyka powinna rozpocząć się od ponownego zalogowania w tej samej aplikacji, sprawdzenia wybranego konta oraz upewnienia się, że data, godzina i strefa czasowa systemu są poprawne. W przeglądarce można sprawdzić, czy po zalogowaniu pojawia się sesyjne ciasteczko, ale jego wartość należy traktować jako poufną. Przydatne jest również porównanie działania w nowej sesji przeglądarki z działaniem w dotychczasowym profilu, ponieważ pozwala odróżnić problem lokalnego magazynu sesji od problemu po stronie konta. Jeżeli błąd występuje w programie korzystającym z API, warto ustalić, czy aplikacja ma aktualną konfigurację adresu usługi i czy proces odświeżania tokenu działa po jego wygaśnięciu. Samo wielokrotne ponawianie żądania nie naprawi braku uprawnienia, a przy operacjach modyfikujących dane może prowadzić do niepożądanych powtórzeń. Diagnostyka powinna obejmować także komunikaty aplikacji, dziennik zdarzeń systemu oraz dokładny czas wystąpienia problemu, bez kopiowania haseł, tokenów i kluczy API. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów stacjonarnych PC i ich podzespołów, dlatego w przypadku problemu z aplikacją można sprawdzić stan systemu, połączenia sieciowego oraz lokalnej konfiguracji programu na urządzeniu. |