| Termin | Definicja |
|---|---|
| token logowania zapisany w localStorage | Token logowania zapisany w localStorage jest narażony na kradzież przez ataki typu XSS. Token logowania zapisany w localStorage – czym jest i do czego służyToken logowania zapisany w localStorage to niewielki ciąg znaków przechowywany przez przeglądarkę internetową w pamięci przypisanej do konkretnej witryny. Zwykle powstaje po poprawnym zalogowaniu i służy do potwierdzania, że kolejne żądania pochodzą od już uwierzytelnionego użytkownika. Dzięki temu nie trzeba wpisywać hasła przy każdym przejściu do następnej podstrony, odświeżeniu widoku ani wykonaniu działania w aplikacji. W praktyce token może mieć postać losowego identyfikatora sesji, podpisanego ciągu danych albo struktury zawierającej informacje o uprawnieniach i czasie ważności. Sama nazwa nie przesądza o dokładnym formacie. Istotne jest to, że posiadanie ważnego tokenu często pozwala uzyskać dostęp do konta w zakresie przewidzianym przez aplikację. Z tego powodu token należy traktować podobnie jak tymczasowy klucz dostępu, nawet jeśli nie przypomina hasła i nie da się go łatwo odczytać wzrokowo. localStorage różni się od pamięci sesyjnej tym, że dane pozostają w przeglądarce także po zamknięciu karty, a często również po ponownym uruchomieniu programu. Jest to wygodne dla aplikacji, które mają pamiętać zalogowanie, ale zwiększa znaczenie właściwego zarządzania cyklem życia tokenu. Usunięcie ciasteczek nie zawsze usuwa dane zapisane w localStorage, ponieważ są to odrębne mechanizmy przechowywania. Token logowania w localStorage – kontekst techniczny i porównanie metodNajważniejsza różnica pomiędzy localStorage a ciasteczkiem dotyczy sposobu dostępu do danych. Kod JavaScript działający w obrębie danej domeny może odczytywać wartości z localStorage. Ciasteczko może natomiast zostać oznaczone jako HttpOnly, co ogranicza możliwość odczytania go przez skrypty uruchomione w stronie. Dodatkowe atrybuty, takie jak Secure i SameSite, mogą ograniczać przesyłanie ciasteczka w określonych sytuacjach. Nie oznacza to, że ciasteczka automatycznie rozwiązują wszystkie problemy, lecz dają mechanizmy kontroli niedostępne dla zwykłego localStorage. W aplikacjach spotyka się także krótkotrwałe tokeny dostępu oraz oddzielne tokeny odświeżające. Pierwszy z nich powinien możliwie szybko wygasać, a drugi służyć do uzyskania kolejnego tokenu po stronie zaufanego mechanizmu. Przechowywanie obu wartości w tym samym miejscu może zwiększać skutki przejęcia danych. Bezpieczniejszy projekt zwykle ogranicza zakres tokenu, skraca jego ważność i przewiduje unieważnienie po wylogowaniu, zmianie hasła albo wykryciu nietypowej aktywności. Warto rozróżnić dwa rodzaje ryzyka. Pierwsze wynika z odczytania tokenu przez niepożądany skrypt działający w aplikacji. Drugie wiąże się z przejęciem urządzenia, profilu przeglądarki, kopii zapasowej lub danych użytkownika. Zabezpieczenie jednego obszaru nie usuwa drugiego. Dlatego znaczenie ma zarówno higiena kodu witryny, jak i ochrona systemu, konta użytkownika oraz samej przeglądarki. Token zapisany w localStorage – typowe problemy i objawyNajczęściej omawianym zagrożeniem jest atak XSS, czyli wstrzyknięcie do strony kodu, który zostaje wykonany w kontekście zaufanej witryny. Jeżeli taki kod może odczytać localStorage, może również przekazać token do miejsca kontrolowanego przez atakującego. W konsekwencji osoba nieuprawniona może próbować użyć przejętej wartości bez znajomości hasła. Problem może powstać przez podatność w formularzu, niebezpieczne wyświetlanie treści, wadliwy moduł zewnętrzny albo nieaktualną bibliotekę. Niepokój powinny wzbudzić sytuacje, w których konto samo się wylogowuje, pojawiają się nieznane działania, ustawienia zmieniają się bez udziału użytkownika albo sesja wygasa w nietypowy sposób. Objawy nie zawsze oznaczają kradzież tokenu, ponieważ podobne zachowanie może powodować błąd aplikacji, niezgodność wersji przeglądarki, uszkodzony profil lub konflikt rozszerzeń. Mimo to nie należy ignorować powtarzających się zdarzeń, zwłaszcza gdy występują jednocześnie na kilku urządzeniach. Ryzyko może zwiększać również pozostawienie aktywnej sesji na współdzielonym komputerze, instalowanie rozszerzeń z niepewnego źródła, uruchamianie nieznanych skryptów w narzędziach deweloperskich oraz korzystanie z dawno nieaktualizowanej przeglądarki. Samo skopiowanie tokenu do notatnika, wiadomości lub zgłoszenia serwisowego jest niewskazane, ponieważ tworzy kolejne miejsca, w których sekret może pozostać dostępny. Token logowania zapisany w localStorage – praktyczne wskazówki ochronyPo podejrzeniu, że token mógł zostać ujawniony, należy wylogować konto ze wszystkich urządzeń, jeśli aplikacja udostępnia taką funkcję, a następnie zmienić hasło. Warto również unieważnić aktywne sesje w ustawieniach konta i włączyć dodatkowe uwierzytelnianie, o ile jest dostępne. Samo usunięcie wartości z localStorage może nie wystarczyć, jeżeli serwer nadal akceptuje wcześniej wydany token. Zmiana hasła również nie zawsze automatycznie unieważnia wszystkie sesje, dlatego trzeba sprawdzić dostępne opcje bezpieczeństwa. Na własnym urządzeniu można otworzyć ustawienia prywatności przeglądarki i usunąć dane witryny związane z konkretną domeną. Można także sprawdzić listę rozszerzeń, usunąć nieużywane dodatki i zaktualizować przeglądarkę oraz system. Należy unikać instalatorów, dodatków i narzędzi pobranych z przypadkowych stron. Jeżeli problem pojawia się wyłącznie w jednym profilu, pomocne bywa utworzenie czystego profilu testowego, ale nie powinno to zastępować analizy przyczyn. Po stronie twórców aplikacji zalecane jest ograniczanie zawartości tokenu, stosowanie krótkiego czasu ważności, rotacja wartości, kontrola odbiorcy i przeznaczenia tokenu oraz unieważnianie sesji po istotnych zmianach na koncie. Należy kodować dane wyjściowe zależnie od miejsca ich użycia, walidować dane wejściowe, wdrażać politykę bezpieczeństwa treści i kontrolować skrypty zewnętrzne. Token nie powinien być umieszczany w adresie strony, logach ani komunikatach diagnostycznych. W aplikacjach o wyższym poziomie ryzyka warto rozważyć przechowywanie sekretów w mechanizmie ograniczającym dostęp skryptów. Kiedy token logowania zapisany w localStorage wymaga zgłoszenia do serwisuDo serwisu warto zgłosić się wtedy, gdy nie można ustalić źródła podejrzanych logowań, przeglądarka przekierowuje na nieznane strony, pojawiają się samoczynnie nowe dodatki albo konto traci sesję mimo prawidłowego hasła. Pomocna jest także konsultacja po przypadkowym uruchomieniu nieznanego kodu, instalacji podejrzanego programu lub zauważeniu nietypowych zmian w ustawieniach przeglądarki. Przed przekazaniem urządzenia nie należy kopiować tokenu do opisu problemu ani wysyłać go w wiadomości. W Warszawie takie przypadki można omówić z firmą Warszawskie Pogotowie Komputerowe 24/7. Podczas sprawdzania można przeanalizować stan przeglądarki, dodatki, profil użytkownika, aktualizacje oraz podstawowe oznaki niepożądanej ingerencji. Do rzetelnej oceny potrzebne jest opisanie momentu wystąpienia problemu, używanej przeglądarki, ostatnich instalacji oraz informacji o tym, czy objaw powtarza się na innych urządzeniach. Nie powinno się ujawniać haseł, kodów jednorazowych ani samych tokenów. Bezpieczniejszym rozwiązaniem jest wylogowanie, unieważnienie sesji i przekazanie wyłącznie opisu objawów. Jeżeli aplikacja jest nadal otwarta, można najpierw zabezpieczyć konto z poziomu jego ustawień, a dopiero później usuwać dane przeglądarki. Takie postępowanie pozwala zachować informacje potrzebne do ustalenia przyczyny, jednocześnie ograniczając możliwość dalszego wykorzystania przejętego dostępu. |