Kratak odgovor: LocalStorage je mehanizam za pohranu podataka u pregledniku koji, poput kolačića, potpada pod propise o zaštiti podataka, uključujući EU ePrivacy Direktivu i GDPR. Pohranjivanje ili pristupanje nebitnim podacima u LocalStorageu bez prethodne, informirane i slobodno dane privole korisnika predstavlja kršenje usklađenosti. Većina organizacija to zanemaruje jer su njihovi alati za upravljanje privolama konfigurirani samo za kolačiće, ostavljajući LocalStorage potpuno neupravljanim.
Ključne spoznaje
- LocalStorage se pravno tretira kao "slična tehnologija" kolačićima prema zakonima Ujedinjenog Kraljevstva i EU-a, što znači da se primjenjuju ista pravila o privoli.
- Europski odbor za zaštitu podataka (EDPB) potvrdio je da tehnologije poput LocalStoragea zahtijevaju prethodnu, informiranu i slobodno danu privolu prije pohranjivanja ili pristupa bilo kakvim nebitnim podacima [2].
- ICO razlikuje pohranu koja je strogo nužna za uslugu i nepotrebnu pohranu koja se koristi za praćenje ili analitiku; samo potonja zahtijeva izričitu privolu [1].
- Mnoge platforme za upravljanje privolama reguliraju kolačiće prema zadanim postavkama, ali ostavljaju LocalStorage nenadziranim, stvarajući značajan jaz u usklađenosti [3].
- SessionStorage nosi iste implikacije na privatnost kao i LocalStorage kada se koristi u svrhe praćenja ili analitike.
- Povlačenje privole obvezuje web stranicu da izbriše sve podatke iz LocalStoragea prikupljene na temelju te privole.
- Skripte trećih strana koje pišu u LocalStorage također zahtijevaju pokrivenost privolom; odgovornost je na operatoru stranice.
- Kazne za neusklađenost s GDPR-om mogu biti značajne; rizik se povećava kada su kršenja sustavna i neprijavljena.
Što je LocalStorage i kako funkcionira
LocalStorage je Web Storage API ugrađen u moderne preglednike koji web stranicama omogućuje pohranu parova ključ-vrijednost podataka izravno na korisnikov uređaj, bez datuma isteka i s tipičnim ograničenjem od oko 5-10 MB po izvoru. Za razliku od kolačića, podaci iz LocalStoragea nikada se automatski ne šalju poslužitelju s HTTP zahtjevima; oni ostaju dok ih eksplicitno ne obriše JavaScript web stranice ili korisnik.
Evo kako to funkcionira u praksi:
- JavaScript web stranice poziva
localStorage.setItem('key', 'value')za pisanje podataka. - Ti podaci ostaju na uređaju tijekom sesija preglednika dok se ne pozove
localStorage.removeItem('key')ililocalStorage.clear(). - Samo skripte s istog izvora (protokol + domena + port) mogu čitati ili pisati te podatke.
Uobičajene upotrebe uključuju: pohranu korisničkih preferencija (tema, jezik), tokena sesije, identifikatora analitike, sadržaja košarice i dodjela varijanti A/B testova.
Ključna točka usklađenosti: budući da LocalStorage pohranjuje podatke na korisnikov uređaj, on pokreće isti pravni okvir kao i kolačići prema ePrivacy Direktivi i GDPR-u, bez obzira na to jesu li ti podaci ikada preneseni na poslužitelj [4].
Trebate li privolu korisnika za LocalStorage prema GDPR-u
Da, za svaku nebitnu upotrebu LocalStoragea, potrebna je izričita privola korisnika prije pohranjivanja ili pristupa podacima. EDPB je potvrdio da tehnologije poput LocalStoragea potpadaju pod iste zahtjeve za privolu kao i kolačići, zahtijevajući prethodnu, informiranu i slobodno danu privolu [2]. ICO dalje precizira da privola mora biti potvrđena jasnom, nedvosmislenom radnjom, a ne izvedena iz ponašanja pregledavanja ili pretpostavljena iz kontinuirane upotrebe stranice [1].
Iznimka nužnosti: Ako se LocalStorage koristi isključivo za pružanje funkcije koju je korisnik izričito zatražio, na primjer, očuvanje stavki u košarici tijekom aktivne sesije, to se može kvalificirati kao strogo nužna pohrana i ne zahtijeva privolu. Međutim, ako se ti isti podaci o košarici koriste za analitiku, ponovno ciljanje ili profiliranje ponašanja, iznimka nužnosti više se ne primjenjuje.
Uobičajena pogreška: Pretpostavka da, budući da podaci iz LocalStoragea ne putuju s HTTP zahtjevima, oni su izvan dosega zakona o privatnosti. Zakon se primjenjuje na čin pohranjivanja ili pristupa informacijama na korisnikovom uređaju, a ne na to jesu li te informacije prenesene.
Razlika između LocalStoragea i kolačića: Zahtjevi za privolu
I LocalStorage i kolačići zahtijevaju privolu kada se koriste u nebitne svrhe, ali se razlikuju u tehničkom ponašanju i načinu na koji ih alati za usklađenost obično obrađuju.
| Značajka | Kolačići | LocalStorage |
|---|---|---|
| Istek | Konfigurabilno | Nema (dok se ne obriše) |
| Šalje se s HTTP zahtjevima | Da | Ne |
| Pristup sa strane poslužitelja | Da | Ne |
| Pokriveno većinom CMP-ova prema zadanim postavkama | Da | Često ne [3] |
| Potrebna privola (nebitno) | Da | Da |
| Opseg | Po domeni/putanji | Po izvoru |
Praktični jaz je značajan: većina platformi za upravljanje privolama arhitektonski je izgrađena oko blokiranja kolačića i kategorizacije kolačića. Pisanje u LocalStorage događa se putem JavaScripta koji CMP-ovi možda neće presresti osim ako nisu posebno konfigurirani za to. Zato LocalStorage ispod radara: Zašto i on zahtijeva izričitu privolu korisnika nije samo teorijska briga, to je aktivna slijepa točka usklađenosti za veliki dio web stranica [3].
Zašto LocalStorage treba izričitu privolu korisnika
LocalStorage zahtijeva izričitu privolu jer predstavlja pristupanje ili pohranjivanje informacija na korisnikovom uređaju, čin reguliran ePrivacy Direktivom (i njezinim nacionalnim implementacijama) neovisno o tome jesu li uključeni osobni podaci. Pravni stručnjaci klasificiraju LocalStorage kao "sličnu tehnologiju" kolačićima prema zakonima Ujedinjenog Kraljevstva, zahtijevajući prethodnu, informiranu i slobodno danu privolu prije bilo kakve nebitne pohrane [4].
Osnovna logika je jednostavna: zakon štiti korisnikov uređaj kao produžetak njegove privatne sfere. Bez obzira na to jesu li podaci pohranjeni u kolačiću, LocalStorageu, IndexedDB-u ili predmemoriji service workera, pravni okidač je sam čin pohrane, a ne format.
Tri uvjeta za valjanu privolu (prema smjernicama ICO-a) [1]:
- Slobodno dana, bez povezivanja privole s prihvaćanjem uvjeta usluge.
- Specifična i informirana, korisnik mora znati što se pohranjuje i zašto.
- Nedvosmislena, privola mora proizaći iz jasne potvrdne radnje, poput označavanja potvrdnog okvira.
Smatra li se LocalStorage praćenjem prema zakonima o privatnosti
LocalStorage se smatra praćenjem kada se koristi za identifikaciju, profiliranje ili nadzor korisnika kroz sesije ili stranice. Pohranjivanje ID-a korisnika analitike, dodjele A/B testa ili oznake segmenta ponašanja u LocalStorageu predstavlja praćenje prema većini regulatornih tumačenja, bez obzira na to jesu li ti podaci kasnije sinkronizirani s poslužiteljem.
To je srž LocalStoragea ispod radara: Zašto i on zahtijeva izričitu privolu korisnika; mnogi programeri tretiraju LocalStorage kao neutralni mehanizam predmemoriranja, dok regulatori svaki trajni identifikator na strani uređaja vide kao potencijalni vektor praćenja koji zahtijeva privolu.
Možete li pohraniti osobne podatke u LocalStorage
Tehnički, da, ali to nosi značajan pravni rizik i općenito je nepreporučljivo. Osobni podaci pohranjeni u LocalStorageu (kao što su adrese e-pošte, komponente otiska uređaja ili korisnički ID-ovi povezani s profilima) podliježu svim obvezama GDPR-a: zakonitoj osnovi, minimizaciji podataka, ograničenjima zadržavanja i pravu na brisanje [1].
Rizici specifični za LocalStorage:
- Podaci traju neograničeno osim ako se eksplicitno ne obrišu, što otežava usklađenost s zadržavanjem.
- Bilo koji JavaScript na stranici (uključujući skripte trećih strana) potencijalno može pristupiti podacima iz LocalStoragea s istog izvora.
- Nema ugrađene enkripcije; osjetljivi podaci pohranjeni u običnom tekstu dostupni su svima s pristupom uređaju ili putem XSS ranjivosti.
Preporuka: Izbjegavajte pohranjivanje osobnih podataka koji se mogu identificirati u LocalStorageu. Ako je pohrana nužna, osigurajte da je dobivena privola, da su podaci minimizirani i da postoji jasan mehanizam za brisanje.
LocalStorage vs SessionStorage: Implikacije na privatnost
SessionStorage se ponaša identično LocalStorageu u smislu Web Storage API-ja, ali podaci se brišu kada se zatvori kartica ili prozor preglednika. Unatoč kraćem životnom vijeku, SessionStorage podliježe istim zahtjevima za privolu kada se koristi za praćenje ili analitiku [6].
Ključna razlika za potrebe usklađenosti:
- SessionStorage se može lakše kvalificirati kao strogo nužan (na primjer, održavanje stanja tijekom višestupanjske naplate), jer podaci ne traju dulje od sesije.
- LocalStorage gotovo uvijek zahtijeva privolu za slučajeve upotrebe praćenja jer njegova postojanost stvara dugoročni identifikator na korisnikovom uređaju.
Nijedan mehanizam nije inherentno izuzet od zakona o privatnosti. Svrha i sadržaj pohranjenih podataka određuju obvezu privole, a ne sama vrsta pohrane.
Što se događa ako koristite LocalStorage bez privole
Korištenje LocalStoragea u nebitne svrhe bez dobivanja valjane prethodne privole predstavlja kršenje ePrivacy Direktive i, gdje su uključeni osobni podaci, GDPR-a. Posljedice mogu uključivati regulatornu istragu, provedbene radnje i štetu ugledu.
Osim regulatornog rizika, postoji i rastuća dimenzija tehničke provedbe: značajke privatnosti preglednika i blokatori oglasa sve više ciljaju praćenje temeljeno na LocalStorageu. Stranice koje se oslanjaju na LocalStorage bez privole za analitiku ili personalizaciju mogu otkriti da su njihovi podaci sve nepouzdaniji kako ti alati postaju sve rašireniji.
Popis za provjeru praktične izloženosti:
- Skripte analitike trećih strana koje pišu identifikatore LocalStoragea bez pokrivenosti privolom.
- Alati za A/B testiranje koji pohranjuju dodjele varijanti prije prikupljanja privole.
- Chat widgeti ili alati za podršku koji inicijaliziraju LocalStorage pri učitavanju stranice prije bilo kakve interakcije korisnika.
- Pikseli za ponovno ciljanje koji koriste LocalStorage kao rezervu za sinkronizaciju kolačića.
Kako implementirati privolu za LocalStorage na svojoj web stranici
Implementacija privole za LocalStorage zahtijeva platformu za upravljanje privolama koja može blokirati izvršavanje JavaScripta, a ne samo postavljanje kolačića, dok korisnik ne donese valjanu odluku o privoli. Standardni banneri za kolačiće koji rade samo na HTTP sloju neće presresti pisanja u LocalStorage koja obavlja JavaScript [3].
Pristup implementaciji korak po korak:
- Provjerite svoju upotrebu LocalStoragea. Koristite razvojne alate preglednika (kartica Aplikacija) i skener skripti kako biste identificirali svaki ključ zapisan u LocalStorage, koja ga skripta piše i u koju svrhu.
- Kategorizirajte svaku upotrebu. Klasificirajte pohranu kao strogo nužnu, funkcionalnu, analitičku ili marketinšku. Samo strogo nužna pohrana može se nastaviti bez privole.
- Odaberite CMP koji pokriva LocalStorage. Osigurajte da vaša platforma za upravljanje privolama može blokirati ili odgoditi izvršavanje JavaScripta za nepotrebne skripte dok se ne dodijeli privola. Biscotti CMP dizajniran je za rukovanje ovom razinom upravljanja privolama na razini skripte.
- Implementirajte učitavanje skripti s ograničenjem privole. Nebitne skripte koje pišu u LocalStorage trebale bi se učitavati tek nakon što je korisnik prihvatio relevantnu kategoriju privole.
- Osigurajte jasno korisničko sučelje za privolu. Banner za privolu mora opisivati upotrebu LocalStoragea jednostavnim jezikom, kategoriziranu po svrsi, s granularnim opcijama za uključivanje.
- Implementirajte mehanizam za povlačenje i brisanje. Kada korisnik povuče privolu, relevantni ključevi LocalStoragea moraju se odmah obrisati.
Kako izbrisati podatke iz LocalStoragea nakon što korisnik povuče privolu
Kada korisnik povuče privolu, web stranica mora odmah izbrisati sve podatke iz LocalStoragea koji su prikupljeni na temelju te privole. To nije opcionalno; pravo na povlačenje privole i uklanjanje povezanih podataka temeljno je načelo GDPR-a.
Uzorak implementacije: