Rýchla odpoveď: SessionStorage a localStorage sú obidve API webového úložiska založené na prehliadači, ktoré umožňujú webovým stránkam ukladať údaje na zariadení používateľa, ale kriticky sa líšia v pretrvávaní a rozsahu. localStorage uchováva údaje neobmedzene naprieč reláciami a záložkami, zatiaľ čo sessionStorage vymazáva údaje, keď sa zatvorí záložka prehliadača. Z hľadiska ochrany súkromia nesie localStorage podstatne vyššie riziko, pretože údaje pretrvávajú bez expirácie, čo z neho robí atraktívnejší cieľ pre sledovanie, odtlačky prstov a regulačné preskúmanie v rámci rámcov ako GDPR.
Kľúčové poznatky
- localStorage pretrváva neobmedzene, kým nie je explicitne vymazané; sessionStorage sa vymaže, keď sa zatvorí záložka alebo okno.
- Obidva typy úložiska sú zraniteľné voči útokom cross-site scripting (XSS) a nenabízajú žiadne vstavané šifrovanie.
- Údaje v localStorage ani sessionStorage sa automaticky neprenášajú na server, na rozdiel od cookies, ale obidve sú plne čitateľné akýmkoľvek JavaScriptom bežiacim na tej istej doméne.
- Skripty tretích strán načítané na stránke môžu pristupovať k údajom localStorage, ak bežia v rámci rovnakého kontextu domény.
- Podľa GDPR je uchovávanie neesenciálnych údajov v localStorage bez súhlasu používateľa porušením súladu, rovnako ako umiestnenie sledovacích cookies.
- Citlivé údaje, ako sú autentifikačné tokeny, heslá a osobne identifikovateľné informácie (PII), by sa nikdy nemali ukladať v žiadnom mechanizme bez dodatočných bezpečnostných vrstiev.
- Súkromné/incognito prehliadanie obmedzuje pretrvávanie localStorage, ale neodstraňuje riziká sessionStorage v rámci relácie.
- Vývojári by mali uprednostniť sessionStorage pre dočasný stav, serverové relácie alebo HttpOnly cookies pre autentifikáciu a platformu na správu súhlasu, ako je Biscotti CMP, na správu súhlasu na ukladanie.
Aký je rozdiel medzi SessionStorage a LocalStorage?
SessionStorage a localStorage sú obidve súčasťou HTML5 API webového úložiska, ale slúžia na odlišné účely definované ich pretrvávaním a správaním v rámci záložiek.
localStorage ukladá páry kľúč-hodnota bez dátumu expirácie. Údaje prežijú reštarty prehliadača, reštarty systému a neobmedzené obdobia nečinnosti, kým ich používateľ alebo aplikácia explicitne neodstráni. Je zdieľané medzi všetkými záložkami a oknami, ktoré fungujú pod rovnakou doménou (protokol + doména + port). [1][5]
sessionStorage ukladá údaje iba počas životnosti relácie stránky. Keď používateľ zatvorí záložku alebo okno, údaje zmiznú. Kriticky, každá záložka udržuje svoju vlastnú izolovanú sessionStorage, otvorenie tej istej URL v druhej záložke nezdieľa údaje sessionStorage prvej záložky. [1]
| Funkcia | localStorage | sessionStorage |
|---|---|---|
| Pretrvávanie | Neobmedzené | Iba počas životnosti záložky/okna |
| Zdieľané medzi záložkami | Áno (rovnaká doména) | Nie (izolácia per záložku) |
| Prežije obnovenie stránky | Áno | Áno |
| Prežije zatvorenie záložky | Áno | Nie |
| Kapacita úložiska | ~5-10 MB na doménu | ~5-10 MB na doménu |
| Prenos na server | Nie | Nie |
| Ochrana HttpOnly | Nie je k dispozícii | Nie je k dispozícii |
Obidve API dodržiavajú politiku rovnakej domény, takže stránka na https://example.com nemôže čítať úložisko nastavené na https://otherdomain.com. [4]

Má localStorage riziká ochrany súkromia v porovnaní so sessionStorage?
Áno, localStorage nesie podstatne vyššie riziká ochrany súkromia ako sessionStorage, predovšetkým kvôli svojmu neobmedzenému pretrvávaní a prístupnosti medzi záložkami.
Údaje zapísané do localStorage sa môžu hromadiť mesiace alebo roky bez vedomia používateľa. Inzerenti a analytické spoločnosti historicky používali localStorage ako „super-cookie“, identifikátor sledovania, ktorý prežije vymazanie cookies, pretože väčšina používateľov si nemyslí, že by mala manuálne vyčistiť úložisko prehliadača. sessionStorage, naopak, sa samodeštruuje pri zatvorení záložky, čo z neho robí oveľa menej užitočný vektor sledovania.
Kľúčové faktory rizika ochrany súkromia jedinečné pre localStorage:
- Trvalé sledovacie identifikátory: Jedinečné ID uložené v localStorage môže sledovať používateľa počas viacerých návštev bez akýchkoľvek cookies na strane servera.
- Únik údajov medzi záložkami: Akýkoľvek skript bežiaci v ktorejkoľvek záložke rovnakej domény môže čítať všetky údaje localStorage.
- Vysielanie udalostí úložiska: Zmeny v localStorage spúšťajú udalosť
storagev iných otvorených záložkách rovnakej domény, čo umožňuje synchronizáciu údajov medzi záložkami, ktorú používatelia nemôžu pozorovať. [5] - Žiadna automatická expirácia: Na rozdiel od cookies, ktoré podporujú atribúty
Max-AgeaExpires, localStorage nemá mechanizmus TTL.
Môžu webové stránky sledovať používateľov pomocou localStorage a sessionStorage?
Webové stránky môžu a používajú localStorage na trvalé sledovanie. sessionStorage je menej užitočné na sledovanie, ale stále predstavuje riziká sledovania v rámci relácie.
Jedna línia JavaScriptu, localStorage.setItem('uid', 'abc123'), vytvára trvalý identifikátor, ktorý prežije vymazanie cookies. Táto technika, niekedy nazývaná „evercookie“ alebo respawnovanie na základe úložiska, bola zdokumentovaná v prieskumoch ochrany súkromia a je dôvodom, prečo regulátori čoraz viac považujú localStorage za podliehajúce rovnakým pravidlám súhlasu ako cookies.
sessionStorage môže sledovať správanie v rámci jednej relácie (tok stránok, vstupy do formulárov, vzory navigácie), ale tieto údaje zmiznú, keď sa zatvorí záložka, čo obmedzuje jeho užitočnosť pre dlhodobé profilovanie.
Ako dlho zostávajú údaje v SessionStorage vs. LocalStorage?
Údaje v localStorage zostávajú, kým nie sú explicitne vymazané, buď používateľom, ktorý vyčistí úložisko prehliadača, webovou stránkou, ktorá zavolá localStorage.removeItem() alebo localStorage.clear(), alebo prehliadačom, ktorý vynúti kvóty úložiska. [2]
Údaje v sessionStorage sa automaticky vymažú, keď sa zatvorí záložka alebo okno, ktoré ich vytvorilo. Prežijú obnovenia stránky v rámci tej istej záložky, ale neprenášajú sa do nových záložiek, aj keď používateľ duplikuje záložku v niektorých prehliadačoch. [1]
Praktická implikácia: Ak vývojár uloží reláčný token do localStorage namiesto sessionStorage, tento token zostáva na zariadení po odhlásení používateľa, pokiaľ ho aplikácia explicitne neodstráni. Toto je bežná a dôsledná chyba.
Je SessionStorage súkromnejšie ako localStorage?
Pre väčšinu prípadov ochrany súkromia áno, sessionStorage je viac rešpektujúcou voľbou pre ochranu súkromia. Jeho automatické vymazanie pri zatvorení záložky znamená, že údaje nezostávajú, čím sa znižuje vystavenie zdieľaniu zariadení, ukradnutým zariadeniam alebo forenznej analýze.
Avšak sessionStorage nie je inherentne „súkromné“. V rámci aktívnej relácie je rovnako zraniteľné voči útokom XSS ako localStorage. Akýkoľvek injekčný skript môže zavolať sessionStorage.getItem() a exfiltruje údaje v reálnom čase. [3]
Vyberte sessionStorage, ak: údaje sú potrebné iba pre aktuálnu interakciu používateľa (napr. stav viacstupňového formulára, jednorazové navigačné tokeny).
Vyberte localStorage, ak: údaje skutočne potrebujú pretrvávať naprieč reláciami (napr. preferencie používateľského rozhrania, nesenzitívne nastavenia) a zabezpečte, aby neobsahovali nič osobne identifikovateľné.
Aké osobné údaje by sa nikdy nemali ukladať do localStorage?
Nasledujúce kategórie údajov by sa nikdy nemali ukladať do localStorage (a mali by sa spravovať s extrémnou opatrnosťou aj v sessionStorage): [3]
- Autentifikačné tokeny (JWT, OAuth tokeny, ID relácie)
- Heslá alebo hashe hesiel
- Údaje o kreditných kartách alebo platobné informácie
- Čísla identifikačných dokladov vydaných vládou alebo čísla sociálneho zabezpečenia
- Celé mená v kombinácii s e-mailovými adresami alebo telefónnymi číslami
- Lekárske alebo zdravotné záznamy
- Akékoľvek údaje klasifikované ako „špeciálna kategória“ podľa GDPR (biometrické údaje, zdravotné údaje, politické názory)
Údaje uložené v localStorage aj sessionStorage sú predvolene nešifrované. Každý, kto má fyzický prístup k zariadeniu, alebo akýkoľvek skript schopný vykonávať na stránke, ich môže čítať v čistom texte. [3]
Môžu skripty tretích strán pristupovať k údajom localStorage?
Skripty tretích strán môžu pristupovať k údajom localStorage, ak sú načítané a vykonávané v rámci rovnakej domény ako hostiteľská stránka. Toto je kritické a často podceňované riziko.
Keď webová stránka vloží skript tretej strany na analýzu alebo reklamu prostredníctvom značky <script>, tento skript beží v kontexte domény hostiteľskej stránky. Môže voľne čítať a zapisovať do localStorage stránky. Politika rovnakej domény neochráni pred skriptmi, ktoré sú úmyselne alebo neúmyselne zahrnuté na stránke. [4]
Čo to znamená v praxi: Ak stránka uloží identifikátor používateľa do localStorage a tiež načíta skript reklamy tretej strany, tento skript môže čítať identifikátor a asociovať ho s údajmi o správaní na iných stránkach, bez vedomia alebo súhlasu používateľa.
Toto je jeden z dôvodov, prečo sú platformy na správu súhlasu dôležité. Biscotti CMP umožňuje webovým stránkam spravovať a dokumentovať súhlas používateľov na operácie ukladania, vrátane sledovania na báze localStorage, čo pomáha stránkam splniť ich povinnosti podľa GDPR a podobných rámcov.
Aké sú dôsledky GDPR pri používaní localStorage?
Podľa GDPR akékoľvek ukladanie osobných údajov alebo sledovacích identifikátorov, bez ohľadu na technický mechanizmus, vyžaduje zákonný základ. Pre neesenciálne sledovanie prostredníctvom localStorage je tento základ takmer vždy explicitný súhlas používateľa. [2]
Európsky výbor pre ochranu údajov potvrdil, že localStorage používané na analýzu, reklamu alebo profilovanie používateľov podlieha rovnakým požiadavkám na súhlas ako cookies. Webové stránky, ktoré umiestňujú sledovacie identifikátory do localStorage bez predchádzajúceho súhlasu, čelí rovnakému riziku presadzovania ako tie, ktoré používajú nesúhlasné cookies.
Kontrolný zoznam súladu pre localStorage podľa GDPR:
- Audít všetky kľúče localStorage, ktoré zapisujú skripty prvej a tretej strany.
- Klasifikujte každý kľúč: je striktne potrebný pre službu, alebo sa používa na analýzu/reklamu?
- Pre neesenciálne úložisko, zabezpečte operáciu zápisu za dokumentovaným súhlasom používateľa.
- Poskytnite používateľom jasný mechanizmus na odvolanie súhlasu a spustenie vymazania úložiska.
- Dokumentujte legitímny záujem správcu údajov alebo záznam súhlasu.
Správne nakonfigurovaná platforma na správu súhlasu, ako je Biscotti CMP, môže automatizovať väčšinu tohto životného cyklu súhlasu.
Môže sa localStorage pristupovať z rôznych webových stránok?
Nie. localStorage je striktne obmedzené na doménu (kombinácia protokolu + domény + portu), ktorá ho vytvorila. Skript na https://siteA.com nemôže čítať údaje localStorage nastavené na https://siteB.com. [4]
Avšak táto ochrana má svoje limity. Ak jeden poskytovateľ reklamy alebo analýzy načíta svoje skripty na oboch siteA.com a siteB.com, každá inštancia zapisuje do localStorage tejto príslušnej stránky nezávisle. Poskytovateľ potom koreluje údaje na strane servera, čím efektívne dosahuje sledovanie medzi stránkami bez porušenia politiky rovnakej domény.
Ako ovplyvňuje režim inkognito a súkromné prehliadanie localStorage?
Súkromné/incognito prehliadanie vytvára dočasnú úložnú partition, ktorá sa vymaže, keď sa súkromné okno zatvorí. localStorage zapísané počas inkognito relácie nepretrváva do hlavného profilu prehliadača a nie je prístupné pre bežné prehliadacie okná.
sessionStorage sa správa rovnako v inkognito ako v bežnom prehliadaní: vymaže sa, keď sa zatvorí záložka.
Dôležité upozornenia:
- V rámci aktívnej inkognito relácie je localStorage stále čitateľné všetkými skriptami bežiacimi v kontexte rovnakej domény.
- Režim inkognito nezabráni exfiltrácii údajov v reálnom čase na základe XSS.
- Niektoré prehliadače synchronizujú localStorage medzi zariadeniami, ak je používateľ prihlásený do synchronizácie prehliadača, správanie, ktoré môže presunúť „miestne“ údaje do cloudovej infraštruktúry.
Ako vyčistiť SessionStorage a localStorage pre ochranu súkromia?
Vyčistenie úložiska prehliadača je jednoduché, ale vyžaduje si vedomé konanie, pretože prehliadače to automaticky nerobia pre localStorage.
Vyčistenie na úrovni prehliadača:
- Chrome: Nastavenia > Ochrana súkromia a zabezpečenie > Vymazať údaje prehliadania > Uložené obrázky a súbory + Údaje stránok
- Firefox: Nastavenia > Ochrana súkromia a zabezpečenie > Cookies a údaje stránok > Vymazať údaje
- Safari: Nastavenia > Ochrana súkromia > Spravovať údaje webových stránok
Programatické vyčistenie (pre vývojárov):
localStorage.clear()odstráni všetky kľúče pre doménu.sessionStorage.clear()odstráni všetky kľúče pre aktuálnu reláciu záložky.localStorage.removeItem('keyName')odstráni konkrétny kľúč.
Pre koncových používateľov, ktorí sa obávajú sledovania: vymazanie „údajov stránok“ alebo „cookies a úložiska“ v nastaveniach prehliadača odstráni obsah localStorage aj sessionStorage pre všetky stránky. Rozšírenia prehliadača navrhnuté na ochranu súkromia môžu automatizovať tento proces na základe stránky alebo relácie.
Aké sú bežné chyby ochrany súkromia, ktoré vývojári robia s webovým úložiskom?
Najdôležitejšie chyby majú spoločný základ: zaobchádzanie s úložiskom na strane klienta, akoby to bola bezpečná databáza na strane servera.
- Ukladanie JWT do localStorage: Autentifikačné tokeny uložené v localStorage sú prístupné akémukoľvek skriptu na stránke. Jedna zraniteľnosť XSS vystavuje tokeny každého používateľa. Namiesto toho používajte HttpOnly cookies pre autentifikačné tokeny.
- Žiadna logika expirácie: localStorage nemá TTL. Vývojári, ktorí ukladajú údaje bez vytvorenia logiky expirácie, nechávajú zastarané, citlivé údaje na zariadeniach neobmedzene.
- Predpokladanie, že rovnaká doména znamená bezpečnosť: Politika rovnakej domény blokuje externé stránky, nie zlé skripty načítané z vnútra tej istej stránky (XSS, kompromitované knižnice tretích strán).
- Ignorovanie prístupu skriptov tretích strán: Vkladanie analytických alebo reklamných skriptov bez auditu toho, čo čítajú z localStorage.
- Žiadna brána súhlasu pre sledovanie úložiska: Zapisovanie analytických identifikátorov do localStorage pred získaním súhlasu používateľa, priamé porušenie GDPR. [2]
- Ukladanie redundantných PII: Ukladanie odpovedí API, ktoré obsahujú celé profily používateľov do localStorage „pre výkon“, bez zohľadnenia vystavenia.
Je IndexedDB súkromnejšie ako localStorage?
IndexedDB nie je inherentne súkromnejšie ako localStorage. Obe podliehajú politike rovnakej domény, obe sú prístupné JavaScriptu bežiacemu na stránke a obe sú zraniteľné voči útokom XSS.
IndexedDB ponúka väčšiu kapacitu úložiska a podporuje štruktúrované údaje a binárne blob, čo z neho robí vhodné pre komplexné offline aplikácie. Ale z hľadiska ochrany súkromia a bezpečnosti sú riziká porovnateľné. Údaje uložené v IndexedDB sú tiež predvolene nešifrované a pretrvávajú neobmedzene, pokiaľ nie sú explicitne vymazané.
Voľba medzi IndexedDB a localStorage by mala byť riadená zložitými požiadavkami na údaje a objemom, nie predpokladmi o ochrane súkromia. Ani jedno nie je vhodné pre citlivé osobné údaje bez šifrovania na úrovni aplikácie a prísnych kontrol prístupu.
Záver
Debata o SessionStorage vs. LocalStorage: Dôsledky na ochranu súkromia webových úložísk nie je len technickou poznámkou, má priamy dopad na ochranu súkromia používateľov, súlad s predpismi a bezpečnosť aplikácií. Neobmedzené pretrvávanie localStorage a prístupnosť medzi záložkami robia z neho vysokorizikový mechanizmus ukladania, keď je zneužitý, zatiaľ čo automatické vymazanie sessionStorage pri zatvorení záložky z neho robí obhájiteľnejšiu voľbu pre dočasný stav.
Akčné kroky pre vývojárov a vlastníkov webových stránok v roku 2026:
- Audít všetky použitia localStorage a sessionStorage naprieč skriptami prvej a tretej strany pomocou nástrojov DevTools prehliadača (záložka Aplikácia).
- Okamžite odstráňte akékoľvek autentifikačné tokeny, PII alebo citlivé identifikátory z úložiska na strane klienta.
- Nahradiť ukladanie autentifikačných tokenov na báze localStorage s HttpOnly, Secure cookies spravovanými na strane servera.
- Implementovať pracovný postup správy súhlasu, pomocou platformy ako Biscotti CMP, na zabezpečenie neesenciálnych zápisov do localStorage za dokumentovaným súhlasom používateľa.
- Vytvorte logiku expirácie do akýchkoľvek údajov localStorage, ktoré musia pretrvávať, a vynúťte čistenie pri odhlásení.
- Vykonajte audit skriptov tretích strán, aby ste pochopili, aký externý kód môže čítať z úložiska vašej domény.
- Školte vývojové tímy o prevencii XSS ako primárnom vektorov útoku proti obom typom úložiska.
API webového úložiska sú mocné nástroje. Použité bez disciplíny ochrany súkromia sa stávajú vektormi zodpovednosti. Použité s vedomým obmedzením, správou súhlasu a hygienou bezpečnosti, slúžia svojmu zamýšľanému účelu bez ohrozenia používateľov, ktorí dôverujú vašej aplikácii.
FAQ
Q: Aký je hlavný rozdiel medzi sessionStorage a localStorage? localStorage pretrváva údaje neobmedzene naprieč reláciami a je zdieľané medzi všetkými záložkami rovnakej domény. sessionStorage ukladá údaje iba počas životnosti aktuálnej záložky a automaticky sa vymaže, keď sa záložka zatvorí.
Q: Môže sa localStorage použiť na sledovanie používateľov bez cookies? Áno. Jedinečný identifikátor uložený v localStorage prežije vymazanie cookies a môže sa použiť na sledovanie používateľov počas viacerých návštev tej istej stránky, fungujúc ako trvalý mechanizmus sledovania.
Q: Je sessionStorage bezpečné na ukladanie hesiel? Nie. sessionStorage nie je šifrované a je prístupné akémukoľvek JavaScriptu bežiacemu na stránke, vrátane injekčných škodlivých skriptov. Heslá by sa nikdy nemali ukladať v žiadnom mechanizme úložiska na strane klienta.
Q: Platí GDPR na localStorage? Áno. Podľa GDPR je ukladanie sledovacích identifikátorov alebo osobných údajov do localStorage bez zákonného základu, typicky explicitného súhlasu používateľa na neesenciálne účely, porušením súladu ekvivalentným používaniu nesúhlasných cookies.
Q: Môžu skripty tretích strán čítať moje údaje localStorage?
Áno, ak sú tieto skripty načítané a vykonávané v rámci rovnakej domény. Skripty tretej strany na analýzu alebo reklamu vložené prostredníctvom značiek <script> bežia v kontexte domény hostiteľskej stránky a môžu čítať všetky údaje localStorage pre túto doménu.
Q: Vymazanie cookies tiež vymaže localStorage? Nie vždy. V väčšine prehliadačov vymazanie „cookies“ samo o sebe nevymaže localStorage. Používatelia musia špecificky vyčistiť „údaje stránok“ alebo „cookies a iné údaje stránok“, aby odstránili obsah localStorage.
Q: Je režim inkognito bezpečný pred sledovaním localStorage? Režim inkognito zabraňuje pretrvávanie údajov localStorage po zatvorení súkromného okna, ale v rámci aktívnej inkognito relácie je localStorage stále čitateľné všetkými skriptami na stránke.
Q: Čo by som mal použiť namiesto localStorage pre autentifikačné tokeny? Použite HttpOnly, Secure, SameSite cookies spravované na strane servera. Tieto cookies sú neprístupné pre JavaScript, čím sa eliminuje riziko krádeže tokenov na báze XSS, ktoré nesie localStorage.
Q: Je IndexedDB bezpečnejšie ako localStorage? Nie. IndexedDB podlieha rovnakým zraniteľnostiam XSS a politike rovnakej domény ako localStorage. Ponúka väčšiu kapacitu a podporu pre štruktúrované údaje, ale neposkytuje žiadne dodatočné záruky ochrany súkromia alebo bezpečnosti.
Q: Koľko údajov môže localStorage a sessionStorage uchovávať? Väčšina moderných prehliadačov prideľuje približne 5 až 10 MB úložiska na doménu pre každý typ úložiska, čo je výrazne viac ako limit 4 KB typický pre cookies. [2]
Odkazy
[1] Sessionstorage - https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage?utm_source=openai
[2] What Is Localstorage Sessionstorage - https://inspectwp.com/en/knowledge-base/what-is-localstorage-sessionstorage?utm_source=openai
[3] Html5 Web Storage Security Risks Safeguarding Localstorage And Sessionstorage - https://www.dopethemes.com/html5-web-storage-security-risks-safeguarding-localstorage-and-sessionstorage/?utm_source=openai
[4] Localstorage - https://javascript.info/localstorage?utm_source=openai
[5] Localstorage Sessionstorage - https://www.w3docs.com/learn-javascript/localstorage-sessionstorage?utm_source=openai
[6] Cookies Vs Localstorage Vs Sessionstorage What Each One Exactly Means - https://www.interserver.net/tips/kb/cookies-vs-localstorage-vs-sessionstorage-what-each-one-exactly-means/?utm_source=openai