0Pricing
HTML Academy · Lekcja

Bezpieczeństwo — czego nigdy nie przechowywać w magazynie

Unikanie przechowywania tokenów i danych osobowych w localStorage

Bezpieczeństwo — czego nigdy nie przechowywać w magazynie to bezpłatna lekcja HTML Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej HTML Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs HTML Academy zawiera 4 lekcji w sumie.

Storage przechowuje zwykły tekst

localStorage i sessionStorage zapisują dane na dysku w profilu użytkownika w postaci niezaszyfrowanej. Każdy proces mający dostęp do systemu plików — w tym złośliwe oprogramowanie, narzędzia do tworzenia kopii zapasowych lub inny zalogowany użytkownik — może odczytać każdą zapisaną wartość bez korzystania z przeglądarki.

Dostępne dla każdego skryptu

Wszystkie skrypty działające w obrębie originu współdzielą ten sam magazyn Storage. Udany atak XSS, przejęty zestaw SDK firmy trzeciej lub złośliwe rozszerzenie przeglądarki może wywołać localStorage.getItem i wyprowadzić każdą przechowywaną wartość. Nie istnieje izolacja na poziomie skryptu.

Nigdy nie przechowuj tokenów uwierzytelniania

Nie należy umieszczać tokenów sesji, JWT, tokenów odświeżania ani kluczy API w localStorage. Jeśli napastnik wstrzyknie pojedynczą linię JavaScriptu, token natychmiast wycieknie. Należy używać ciasteczek httpOnly, Secure, SameSite, aby token nigdy nie był dostępny z poziomu JavaScriptu.

Nigdy nie przechowuj haseł

Przechowywanie haseł w dowolnej postaci — zwykłego tekstu, skrótu lub postaci zaszyfrowanej — po stronie klienta jest niewłaściwe. Haszowanie po stronie klienta nie pomaga, ponieważ napastnik może odczytać skrót i użyć go ponownie. Obsługa haseł należy w całości do serwera i powinna korzystać z dedykowanego mechanizmu haszowania haseł, takiego jak bcrypt.

Nigdy nie przechowuj danych kart płatniczych

PCI-DSS zabrania przechowywania numerów kart, kodów CVV, danych paska magnetycznego oraz dat ważności w pamięci po stronie klienta. Zamiast tego używaj dostawcy płatności z tokenizacją (Stripe, Braintree, Adyen), który zwraca krótkotrwały token powiązany z originem aplikacji.

Nigdy nie przechowuj identyfikatorów osobowych

Dokumenty tożsamości, pełne daty urodzenia, adresy zamieszkania i dane medyczne przyciągają uwagę organów regulacyjnych (GDPR, HIPAA) oraz napastników. Przechowuj tylko to, co jest wymagane w bieżącej sesji, proś o te dane ponownie, gdy są potrzebne, a serwer traktuj jako źródło prawdy.

XSS zwielokrotnia szkody

Podatność XSS ujawniająca document.cookie jest poważnym problemem. Ta sama podatność na stronie przechowującej tokeny w localStorage przekazuje napastnikowi od razu każdą przechowywaną wartość. Traktuj localStorage jako powierzchnię ataku zgodną z zasadą: „jeśli jeden skrypt został przejęty, wszystko zostało przejęte”.

Szyfrowanie nie zapewni ochrony

Szyfrowanie wartości za pomocą klucza, który również znajduje się w JavaScript, nie zapewnia rzeczywistej ochrony — napastnik, który może odczytać szyfrogram, może także odczytać klucz. Rzeczywiste sekrety muszą pozostać po stronie serwera i być wydawane ponownie, a nie utrwalane po stronie klienta.

Co można bezpiecznie przechowywać

Preferencje interfejsu użytkownika (motyw, zwinięty panel boczny, język), niewrażliwe flagi funkcji, zawartość roboczych formularzy i tymczasowy stan kreatora można bezpiecznie przechowywać. Są one i tak widoczne dla użytkownika, a ich ujawnienie nie umożliwia przejęcia konta.

localStorage.setItem("theme", "dark");
localStorage.setItem("sidebar:collapsed", "true");
localStorage.setItem("draft:post-123", draftMarkdown);

Używaj cookies do uwierzytelniania

Przekazuj dane uwierzytelniające za pomocą Set-Cookie: token=...; HttpOnly; Secure; SameSite=Strict. Flaga HttpOnly sprawia, że cookie jest niedostępne dla JavaScript, co neutralizuje większość payloadów XSS wykradających tokeny, nawet gdy na stronie występują inne błędy.

Zabezpieczenia związane z używaniem pamięci

Jeśli musisz buforować dane wyglądające na wrażliwe, ogranicz ich zakres (krótki TTL, usuwanie podczas wylogowania, usuwanie przy zamknięciu karty za pomocą sessionStorage), zastosuj restrykcyjną politykę Content Security Policy blokującą wstrzyknięte skrypty i przeprowadź audyt każdego skryptu zewnętrznego uruchamianego na stronach wymagających uwierzytelnienia.

Sprawdź swoją wiedzę

Dlaczego tokeny uwierzytelniające przechowywane w localStorage uważa się za zagrożenie bezpieczeństwa?

Podsumowanie

Web Storage przechowuje dane w postaci jawnego tekstu, jest dostępny dla skryptów i współdzielony w ramach originu. Nigdy nie umieszczaj tam tokenów uwierzytelniających, haseł, danych płatniczych ani regulowanych informacji osobowych. Przechowuj sekrety w cookie httpOnly, a localStorage rezerwuj na nieszkodliwy stan interfejsu, który użytkownik i tak mógłby zobaczyć.

Często zadawane pytania

Czy lekcja „Bezpieczeństwo — czego nigdy nie przechowywać w magazynie” jest bezpłatna?

Tak — pełny tekst „Bezpieczeństwo — czego nigdy nie przechowywać w magazynie” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu HTML Academy, przejdź na CoddyKit PRO. Kurs HTML Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Bezpieczeństwo — czego nigdy nie przechowywać w magazynie”?

Unikanie przechowywania tokenów i danych osobowych w localStorage Ćwiczysz HTML Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć HTML Academy?

Nie wymagamy żadnego doświadczenia. HTML Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Bezpieczeństwo — czego nigdy nie przechowywać w magazynie”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji HTML Academy?

Tak. Każda lekcja HTML Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. localStorage a sessionStorage
  2. Pobieranie, ustawianie i usuwanie elementów
  3. Nasłuchiwanie zdarzeń storage
  4. Bezpieczeństwo — czego nigdy nie przechowywać w magazynie
← Powrót do HTML Academy