Stručná odpověď: SessionStorage a localStorage jsou obě API webových úložišť založená na prohlížeči, která umožňují webovým stránkám ukládat data na zařízení uživatele, ale kriticky se liší v perzistenci a rozsahu. localStorage uchovává data neomezeně dlouho napříč relacemi a záložkami, zatímco sessionStorage maže data po zavření záložky prohlížeče. Z hlediska soukromí nese localStorage podstatně vyšší riziko, protože data přetrvávají bez vypršení platnosti, což z něj činí atraktivnější cíl pro sledování, fingerprinting a regulační kontrolu podle rámců, jako je GDPR.
Klíčové poznatky
- localStorage přetrvává neomezeně dlouho, dokud není explicitně vymazáno; sessionStorage je smazáno po zavření záložky nebo okna.
- Oba typy úložišť jsou zranitelné vůči útokům cross-site scripting (XSS) a nenabízejí žádné vestavěné šifrování.
- Data z localStorage ani sessionStorage se na server nepřenášejí automaticky, na rozdíl od cookies, ale obě jsou plně čitelná jakýmkoli JavaScriptem běžícím na stejném původu.
- Skripty třetích stran načtené na stránce mohou přistupovat k datům localStorage, pokud běží ve stejném kontextu původu.
- Podle GDPR je ukládání nepodstatných dat do localStorage bez souhlasu uživatele porušením souladu, stejně jako ukládání sledovacích cookies.
- Citlivá data, jako jsou autentizační tokeny, hesla a osobně identifikovatelné informace (PII), by nikdy neměla být ukládána do žádného z těchto mechanismů bez dalších bezpečnostních vrstev.
- Soukromé/inkognito prohlížení omezuje perzistenci localStorage, ale neodstraňuje rizika sessionStorage v rámci relace.
- Vývojáři by měli preferovat sessionStorage pro dočasný stav, serverové relace nebo HttpOnly cookies pro autentizaci a platformu pro správu souhlasu, jako je Biscotti CMP, pro správu souhlasu s ukládáním.
Jaký je rozdíl mezi SessionStorage a LocalStorage?
SessionStorage a localStorage jsou obě součástí HTML5 Web Storage API, ale slouží k odlišným účelům definovaným jejich perzistencí a chováním v rámci záložek.
localStorage ukládá páry klíč-hodnota bez data vypršení platnosti. Data přežijí restarty prohlížeče, restarty systému a neomezená období nečinnosti, dokud je uživatel nebo aplikace explicitně neodstraní. Jsou sdílena napříč všemi záložkami a okny fungujícími pod stejným původem (protokol + doména + port). [1][5]
sessionStorage ukládá data pouze po dobu životnosti relace stránky. Když uživatel zavře záložku nebo okno, data zmizí. Kriticky, každá záložka si udržuje své vlastní izolované sessionStorage, otevření stejné URL v druhé záložce nesdílí data sessionStorage z první záložky. [1]
| Funkce | localStorage | sessionStorage |
|---|---|---|
| Perzistence | Neomezená | Pouze po dobu životnosti záložky/okna |
| Sdíleno napříč záložkami | Ano (stejný původ) | Ne (izolace na záložku) |
| Přežije opětovné načtení stránky | Ano | Ano |
| Přežije zavření záložky | Ano | Ne |
| Kapacita úložiště | ~5-10 MB na původ | ~5-10 MB na původ |
| Přenos na server | Ne | Ne |
| Ochrana HttpOnly | Není k dispozici | Není k dispozici |
Obě API dodržují zásadu stejného původu, takže stránka na https://example.com nemůže číst úložiště nastavené https://otherdomain.com. [4]

Má localStorage rizika pro soukromí ve srovnání se sessionStorage?
Ano, localStorage nese podstatně vyšší rizika pro soukromí než sessionStorage, především kvůli své neomezené perzistenci a přístupnosti napříč záložkami.
Data zapsaná do localStorage se mohou hromadit po měsíce nebo roky bez vědomí uživatele. Inzerenti a poskytovatelé analytických služeb historicky používali localStorage jako „super-cookie“, sledovací identifikátor, který přežije smazání cookies, protože většina uživatelů nepomyslí na ruční vymazání úložiště prohlížeče. sessionStorage se naopak po zavření záložky samo zničí, což z něj činí mnohem méně užitečný vektor sledování.
Klíčové faktory rizika pro soukromí jedinečné pro localStorage:
- Perzistentní sledovací identifikátory: Unikátní ID uložené v localStorage může sledovat uživatele napříč více návštěvami bez jakékoli serverové cookie.
- Únik dat napříč záložkami: Jakýkoli skript běžící v jakékoli záložce stejného původu může číst všechna data localStorage.
- Vysílání událostí úložiště: Změny v localStorage spouštějí událost
storagev jiných otevřených záložkách ze stejného původu, což umožňuje synchronizaci dat napříč záložkami, kterou uživatelé nemohou pozorovat. [5] - Žádné automatické vypršení platnosti: Na rozdíl od cookies, které podporují atributy
Max-AgeaExpires, localStorage nemá mechanismus TTL.
Mohou webové stránky sledovat uživatele pomocí localStorage a sessionStorage?
Webové stránky mohou a používají localStorage pro perzistentní sledování. sessionStorage je pro sledování méně užitečné, ale stále představuje rizika sledování v rámci relace.
Jediný řádek JavaScriptu, localStorage.setItem('uid', 'abc123'), vytvoří perzistentní identifikátor, který přežije vymazání cookies. Tato technika, někdy nazývaná „evercookie“ nebo respawning založený na úložišti, byla zdokumentována v rámci výzkumu soukromí a je důvodem, proč regulátoři stále častěji zacházejí s localStorage podle stejných pravidel souhlasu jako s cookies.
sessionStorage může sledovat chování v rámci jedné relace (tok stránek, vstupy do formulářů, navigační vzorce), ale tato data zmizí po zavření záložky, což omezuje jeho užitečnost pro dlouhodobé profilování.
Jak dlouho zůstávají data v SessionStorage vs. LocalStorage?
Data localStorage zůstávají, dokud nejsou explicitně smazána, buď uživatelem vymazáním úložiště prohlížeče, webovou stránkou volající localStorage.removeItem() nebo localStorage.clear(), nebo prohlížečem vynucujícím kvóty úložiště. [2]
Data sessionStorage jsou automaticky smazána po zavření záložky nebo okna, které je vytvořilo. Přežijí opětovné načtení stránky v rámci stejné záložky, ale nepřenášejí se do nových záložek, i když uživatel záložku v některých prohlížečích duplikuje. [1]
Praktický důsledek: Pokud vývojář uloží token relace do localStorage namísto sessionStorage, tento token zůstane na zařízení i po odhlášení uživatele, pokud jej aplikace explicitně neodstraní. To je běžná a závažná chyba.
Je SessionStorage soukromější než localStorage?
Pro většinu případů použití soukromí ano, sessionStorage je volba, která více respektuje soukromí. Jeho automatické smazání po zavření záložky znamená, že data nezůstávají, což snižuje riziko zneužití při sdílení zařízení, odcizených zařízeních nebo forenzní analýze.
Nicméně, sessionStorage není inherentně „soukromé“. V rámci aktivní relace je stejně zranitelné vůči útokům XSS jako localStorage. Jakýkoli injektovaný skript může volat sessionStorage.getItem() a exfiltrovat data v reálném čase. [3]
Zvolte sessionStorage, pokud: jsou data potřebná pouze pro aktuální interakci uživatele (např. stav vícekrokového formuláře, jednorázové navigační tokeny).
Zvolte localStorage, pokud: data skutečně potřebují přetrvávat napříč relacemi (např. uživatelské preference UI, necítlivá nastavení) a ujistěte se, že neobsahují nic osobně identifikovatelného.
Jaká osobní data by nikdy neměla jít do localStorage?
Následující kategorie dat by nikdy neměly být ukládány do localStorage (a mělo by se s nimi zacházet s extrémní opatrností i v sessionStorage): [3]
- Autentizační tokeny (JWT, OAuth tokeny, ID relací)
- Hesla nebo hash hesla
- Informace o kreditních kartách nebo platbách
- Vládní identifikační čísla nebo čísla sociálního pojištění
- Celá jména kombinovaná s e-mailovými adresami nebo telefonními čísly
- Lékařské nebo zdravotní záznamy
- Jakákoli data klasifikovaná jako „zvláštní kategorie“ podle GDPR (biometrická data, zdravotní data, politické názory)
Data uložená v localStorage i sessionStorage jsou ve výchozím nastavení nešifrovaná. Kdokoli s fyzickým přístupem k zařízení nebo jakýkoli skript schopný spuštění na stránce je může číst v prostém textu. [3]
Mohou skripty třetích stran přistupovat k datům localStorage?
Skripty třetích stran mohou přistupovat k datům localStorage, pokud jsou načteny a spuštěny ve stejném původu jako hostitelská stránka. To je kritické a často podceňované riziko.
Když webová stránka vloží skript třetí strany pro analýzu nebo reklamu pomocí značky <script>, tento skript běží v kontextu původu hostitelské stránky. Může volně číst a zapisovat do localStorage webu. Zásada stejného původu nechrání před skripty, které jsou záměrně nebo neúmyslně zahrnuty na stránce. [4]
Co to znamená v praxi: Pokud web ukládá identifikátor uživatele do localStorage a také načítá reklamní skript třetí strany, tento reklamní skript může číst identifikátor a spojit jej s behaviorálními daty napříč weby, bez vědomí nebo souhlasu uživatele.
To je jeden z důvodů, proč jsou platformy pro správu souhlasu důležité. Biscotti CMP umožňuje webovým stránkám spravovat a dokumentovat souhlas uživatelů s operacemi ukládání, včetně sledování založeného na localStorage, což pomáhá webům plnit jejich povinnosti podle GDPR a podobných rámců.
Jaké jsou důsledky GDPR pro používání localStorage?
Podle GDPR vyžaduje jakékoli ukládání osobních údajů nebo sledovacích identifikátorů, bez ohledu na technický mechanismus, právní základ. Pro nepodstatné sledování prostřednictvím localStorage je tímto základem téměř vždy explicitní souhlas uživatele. [2]
Evropský sbor pro ochranu údajů potvrdil, že localStorage používané pro analýzu, reklamu nebo profilování uživatelů spadá pod stejné požadavky na souhlas jako cookies. Webové stránky, které ukládají sledovací identifikátory do localStorage bez předchozího souhlasu, čelí stejné hrozbě vymáhání jako ty, které používají cookies bez souhlasu.
Kontrolní seznam souladu pro localStorage podle GDPR:
- Auditujte všechny klíče localStorage zapsané skripty první strany a třetích stran.
- Klasifikujte každý klíč: je striktně nezbytný pro službu, nebo je používán pro analýzu/reklamu?
- Pro nepodstatné ukládání podmiňte operaci zápisu zdokumentovaným souhlasem uživatele.
- Poskytněte uživatelům jasný mechanismus pro odvolání souhlasu a spuštění smazání úložiště.
- Zdokumentujte oprávněný zájem správce údajů nebo záznam souhlasu.
Správně nakonfigurovaná platforma pro správu souhlasu, jako je Biscotti CMP, může automatizovat velkou část tohoto životního cyklu souhlasu.
Lze k localStorage přistupovat napříč různými webovými stránkami?
Ne. localStorage je striktně vymezeno na původ (kombinace protokolu + domény + portu), který jej vytvořil. Skript na https://siteA.com nemůže číst data localStorage nastavená https://siteB.com. [4]
Tato ochrana má však své limity. Pokud jediný poskytovatel reklamy nebo analýzy načítá své skripty na siteA.com i siteB.com, každá instance zapisuje do localStorage příslušného webu nezávisle. Poskytovatel pak koreluje data na straně serveru, čímž efektivně dosahuje sledování napříč weby bez porušení zásady stejného původu.
Jak režim inkognito a soukromé prohlížení ovlivňují localStorage?
Soukromé/inkognito prohlížení vytváří dočasný oddíl úložiště, který je smazán po zavření soukromého okna. localStorage zapsané během inkognito relace nepřetrvává v hlavním profilu prohlížeče a není přístupné běžným oknům prohlížeče.
sessionStorage se chová v inkognito režimu stejně jako v běžném prohlížení: je smazáno po zavření záložky.
Důležité upozornění:
- V rámci aktivní inkognito relace je localStorage stále čitelné všemi skripty běžícími v kontextu stejného původu této relace.
- Režim inkognito nezabraňuje exfiltraci dat v reálném čase založené na XSS.
- Některé prohlížeče synchronizují localStorage napříč zařízeními, pokud je uživatel přihlášen k synchronizaci prohlížeče, což je chování, které může přesunout „lokální“ data do cloudové infrastruktury.
Jak vyčistím SessionStorage a localStorage pro ochranu soukromí?
Vymazání úložiště prohlížeče je jednoduché, ale vyžaduje úmyslnou akci, protože prohlížeče to pro localStorage nedělají automaticky.
Vymazání na úrovni prohlížeče:
- Chrome: Nastavení > Soukromí a zabezpečení > Vymazat data prohlížení > Obrázky a soubory v mezipaměti + Data webu
- Firefox: Nastavení > Soukromí a zabezpečení > Cookies a data webu > Vymazat data
- Safari: Nastavení > Soukromí > Spravovat data webových stránek
Programové vymazání (pro vývojáře):
localStorage.clear()odstraní všechny klíče pro daný původ.sessionStorage.clear()odstraní všechny klíče pro aktuální relaci záložky.localStorage.removeItem('keyName')odstraní konkrétní klíč.
Pro koncové uživatele, kteří se obávají sledování: vymazání „dat webu“ nebo „cookies a úložiště“ v nastavení prohlížeče odstraní obsah localStorage i sessionStorage pro všechny weby. Rozšíření prohlížeče určená pro ochranu soukromí to mohou automatizovat na základě jednotlivých webů nebo relací.
Jaké jsou běžné chyby v ochraně soukromí, kterých se vývojáři dopouštějí při používání webového úložiště?
Nejzávažnější chyby mají společný kořen: zacházení s úložištěm na straně klienta, jako by to byla bezpečná databáze na straně serveru.
- Ukládání JWT do localStorage: Autentizační tokeny uložené v localStorage jsou přístupné jakémukoli skriptu na stránce. Jediná zranitelnost XSS odhalí token každého uživatele. Místo toho použijte HttpOnly cookies pro autentizační tokeny.
- Žádná logika vypršení platnosti: localStorage nemá TTL. Vývojáři, kteří ukládají data bez vytvoření logiky vypršení platnosti, zanechávají zastaralá, citlivá data na zařízeních neomezeně dlouho.
- Předpoklad, že stejný původ znamená bezpečný: Zásada stejného původu blokuje externí weby, nikoli škodlivé skripty načtené z téhož webu (XSS, kompromitované knihovny třetích stran).
- Ignorování přístupu skriptů třetích stran: Vkládání analytických nebo reklamních skriptů bez auditu toho, co čtou z localStorage.
- Žádná brána souhlasu pro sledovací úložiště: Zapisování analytických identifikátorů do localStorage před získáním souhlasu uživatele, což je přímé porušení GDPR. [2]
- Ukládání redundantních PII: Ukládání odpovědí API, které zahrnují úplné uživatelské profily, do localStorage „pro výkon“ bez zohlednění povrchu expozice.
Je IndexedDB soukromější než localStorage?
IndexedDB není inherentně soukromější než localStorage. Obě se řídí zásadou stejného původu, obě jsou přístupné JavaScriptu běžícímu na stránce a obě jsou zranitelné vůči útokům XSS.
IndexedDB nabízí větší kapacitu úložiště a podporuje strukturovaná data a binární objekty, což je vhodné pro složité offline aplikace. Ale z hlediska soukromí a bezpečnosti jsou rizika srovnatelná. Data uložená v IndexedDB jsou také ve výchozím nastavení nešifrovaná a přetrvávají neomezeně dlouho, pokud nejsou explicitně smazána.
Volba mezi IndexedDB a localStorage by měla být řízena požadavky na složitost a objem dat, nikoli předpoklady o soukromí. Ani jedno není vhodné pro citlivá osobní data bez šifrování na aplikační vrstvě a přísných kontrol přístupu.
Závěr
Debata SessionStorage vs. LocalStorage: Důsledky pro soukromí webových úložišť API není pouhou technickou poznámkou, má přímé důsledky pro soukromí uživatelů, dodržování předpisů a zabezpečení aplikací. Neomezená perzistence a přístupnost localStorage napříč záložkami z něj činí vysoce rizikový mechanismus ukládání při nesprávném použití, zatímco automatické smazání sessionStorage po zavření záložky z něj činí obhajitelnější volbu pro dočasný stav.
Akční kroky pro vývojáře a vlastníky webových stránek v roce 2026:
- Auditujte veškeré použití localStorage a sessionStorage napříč skripty první strany a třetích stran pomocí nástrojů pro vývojáře prohlížeče (záložka Aplikace).
- Okamžitě odstraňte veškeré autentizační tokeny, PII nebo citlivé identifikátory z úložiště na straně klienta.
- Nahraďte ukládání autentizačních tokenů založené na localStorage pomocí HttpOnly, Secure cookies spravovaných na straně serveru.
- Implementujte pracovní postup správy souhlasu pomocí platformy, jako je Biscotti CMP, pro podmínění nepodstatných zápisů do localStorage zdokumentovaným souhlasem uživatele.
- Vytvořte logiku vypršení platnosti pro všechna data localStorage, která musí přetrvávat, a vynucujte vyčištění při odhlášení.
- Proveďte audit skriptů třetích stran, abyste pochopili, jaký externí kód může číst z úložiště vašeho původu.
- Vyškolte vývojové týmy v prevenci XSS jako primárního vektoru útoku proti oběma typům úložišť.
API webových úložišť jsou mocné nástroje. Používány bez disciplíny v oblasti soukromí se stávají vektory odpovědnosti. Používány s úmyslným vymezením, správou souhlasu a hygienou zabezpečení slouží svému zamýšlenému účelu, aniž by ohrozily uživatele, kteří vaší aplikaci důvěřují.
Často kladené otázky
Otázka: Jaký je hlavní rozdíl mezi sessionStorage a localStorage? localStorage uchovává data neomezeně dlouho napříč relacemi a je sdíleno napříč všemi záložkami stejného původu. sessionStorage ukládá data pouze po dobu životnosti aktuální záložky a je automaticky smazáno po zavření záložky.
Otázka: Lze localStorage použít ke sledování uživatelů bez cookies? Ano. Unikátní identifikátor uložený v localStorage přežije smazání cookies a může být použit ke sledování uživatelů napříč více návštěvami stejného webu, funguje jako perzistentní sledovací mechanismus.
Otázka: Je sessionStorage bezpečné pro ukládání hesel? Ne. sessionStorage není šifrováno a je přístupné jakémukoli JavaScriptu běžícímu na stránce, včetně injektovaných škodlivých skriptů. Hesla by nikdy neměla být ukládána do žádného mechanismu úložiště na straně klienta.
Otázka: Vztahuje se GDPR na localStorage? Ano. Podle GDPR je ukládání sledovacích identifikátorů nebo osobních údajů do localStorage bez právního základu, obvykle explicitního souhlasu uživatele pro nepodstatné účely, porušením souladu rovnocenným s používáním cookies bez souhlasu.
Otázka: Mohou skripty třetích stran číst moje data localStorage?
Ano, pokud jsou tyto skripty načteny a spuštěny ve stejném původu. Skripty třetích stran pro analýzu nebo reklamu vložené pomocí značek <script> běží v kontextu původu hostitelské stránky a mohou číst všechna data localStorage pro tento původ.
Otázka: Vymaže vymazání cookies také localStorage? Ne vždy. Ve většině prohlížečů samotné vymazání „cookies“ nevymaže localStorage. Uživatelé musí konkrétně vymazat „data webu“ nebo „cookies a další data webu“, aby odstranili obsah localStorage.
Otázka: Je režim inkognito bezpečný před sledováním localStorage? Režim inkognito zabraňuje přetrvávání dat localStorage po zavření soukromého okna, ale v rámci aktivní inkognito relace je localStorage stále čitelné všemi skripty na stránce.
Otázka: Co bych měl použít místo localStorage pro autentizační tokeny? Použijte HttpOnly, Secure, SameSite cookies spravované na straně serveru. Tyto cookies jsou nepřístupné JavaScriptu, což eliminuje riziko krádeže tokenů založené na XSS, které s sebou nese localStorage.
Otázka: Je IndexedDB bezpečnější než localStorage? Ne. IndexedDB podléhá stejným zranitelnostem XSS a zásadě stejného původu jako localStorage. Nabízí větší kapacitu a podporu datových struktur, ale žádné další záruky soukromí nebo bezpečnosti.
Otázka: Kolik dat mohou localStorage a sessionStorage pojmout? Většina moderních prohlížečů přiděluje přibližně 5 až 10 MB úložiště na původ pro každý typ úložiště, což je výrazně více než typický limit 4 KB pro cookies. [2]
Reference
[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