Greitas atsakymas: LocalStorage yra naršyklės pagrindu veikianti saugojimo sistema, kuri, kaip ir slapukai, patenka po duomenų privatumo reglamentais, įskaitant ES ePrivacy direktyvą ir GDPR. Nelaikant arba nepasiekiant nebūtinų duomenų LocalStorage be išankstinio, informuoto ir laisvai suteikto vartotojo sutikimo, tai yra atitikties pažeidimas. Dauguma organizacijų to nepastebi, nes jų sutikimo valdymo įrankiai yra sukonfigūruoti tik slapukams, palikdami LocalStorage visiškai nesuvaldomą.
Pagrindinės išvados
- LocalStorage pagal JK ir ES teisę laikoma "panašia technologija" slapukams, tai reiškia, kad taikomos tos pačios sutikimo taisyklės.
- Europos duomenų apsaugos valdyba (EDPB) patvirtino, kad tokios technologijos kaip LocalStorage reikalauja išankstinio, informuoto ir laisvai suteikto sutikimo prieš saugant ar pasiekiant bet kokius nebūtinus duomenis [2].
- ICO skiria saugojimą, kuris yra griežtai būtinas paslaugai, ir nebūtiną saugojimą, naudojamą sekimui ar analizei, tik pastarasis reikalauja aiškaus sutikimo [1].
- Dauguma sutikimo valdymo platformų automatiškai reguliuoja slapukus, tačiau palieka LocalStorage nesekamą, sukurdamos reikšmingą atitikties spragą [3].
- SessionStorage turi tas pačias privatumo pasekmes kaip LocalStorage, kai naudojamas sekimui ar analizei.
- Sutikimo atšaukimas įpareigoja svetainę ištrinti bet kokius LocalStorage duomenis, surinktus pagal tą sutikimą.
- Trečiųjų šalių skriptai, kurie rašo į LocalStorage, taip pat reikalauja sutikimo, atsakomybė tenka svetainės operatoriui.
- Baudos už nesilaikymą pagal GDPR gali būti didelės; rizika didėja, kai pažeidimai yra sisteminiai ir neskelbiami.
Kas yra LocalStorage ir kaip jis veikia
LocalStorage yra Web Storage API, įmontuota moderniose naršyklėse, leidžianti svetainėms saugoti raktų-vertės duomenų poras tiesiogiai vartotojo įrenginyje, neturint galiojimo datos ir tipiniu per kilmę limitu apie 5-10 MB. Skirtingai nuo slapukų, LocalStorage duomenys niekada automatiškai nesiunčiami serveriui su HTTP užklausomis, jie išlieka, kol nėra aiškiai išvalyti svetainės JavaScript arba vartotojo.
Štai kaip tai veikia praktikoje:
- Svetainės JavaScript kviečia
localStorage.setItem('key', 'value'), kad įrašytų duomenis. - Tie duomenys išlieka įrenginyje per naršyklės sesijas, kol nėra kviečiama
localStorage.removeItem('key')arbalocalStorage.clear(). - Tik skriptai iš tos pačios kilmės (protokolas + domenas + prievadas) gali skaityti arba rašyti tuos duomenis.
Dažniausi naudojimo atvejai: vartotojo nuostatų (tema, kalba), sesijos žetonų, analizės identifikatorių, pirkinių krepšelio turinio ir A/B testų variantų priskyrimų saugojimas.
Kritinė atitikties vieta: kadangi LocalStorage saugo duomenis vartotojo įrenginyje, jis sukelia tą pačią teisinę sistemą kaip slapukai pagal ePrivacy direktyvą ir GDPR, nepriklausomai nuo to, ar tie duomenys kada nors perduodami serveriui [4].
Ar reikia vartotojo sutikimo LocalStorage pagal GDPR
Taip, bet kokiam nebūtinam LocalStorage naudojimui reikalaujama aiškaus vartotojo sutikimo prieš saugant ar pasiekiant duomenis. EDPB patvirtino, kad tokios technologijos kaip LocalStorage patenka po tomis pačiomis sutikimo reikalavimais kaip slapukai, reikalaujant išankstinio, informuoto ir laisvai suteikto sutikimo [2]. ICO toliau nurodo, kad sutikimas turi būti patvirtintas aiškiu, nedviprasmiu veiksmu, o ne išvedamas iš naršymo elgesio ar laikomas iš svetainės naudojimo [1].
Būtinybės išimtis: Jei LocalStorage naudojamas tik funkcijai, kurią vartotojas aiškiai paprašė, pavyzdžiui, išsaugoti prekes pirkinių krepšelyje aktyvios sesijos metu, tai gali būti laikoma griežtai būtinu saugojimu ir nereikalauti sutikimo. Tačiau, jei tie patys krepšelio duomenys naudojami analizei, retargetingui ar elgesio profiliavimui, būtinybės išimtis nebegalioja.
Dažna klaida: Manoma, kad kadangi LocalStorage duomenys nekeliauja su HTTP užklausomis, jie yra už privatumo įstatymo ribų. Įstatymas taikomas informacijai saugoti arba pasiekti vartotojo įrenginyje, o ne tam, ar ta informacija perduodama.
LocalStorage ir slapukai: sutikimo reikalavimai
T tanto LocalStorage, tiek slapukams reikalaujama sutikimo, kai jie naudojami nebūtinai, tačiau jie skiriasi techniniu elgesiu ir tuo, kaip atitikties įrankiai juos paprastai tvarko.
| Ypatybė | Slapukai | LocalStorage |
|---|---|---|
| Galiojimas | Konfigūruojamas | Nėra (kol išvaloma) |
| Siunčiami su HTTP užklausomis | Taip | Ne |
| Prieiga serverio pusėje | Taip | Ne |
| Dauguma CMP automatiškai apima | Taip | Dažnai ne [3] |
| Reikalingas sutikimas (nebūtinai) | Taip | Taip |
| Taikymo sritis | Pagal domeną/kelią | Pagal kilmę |
Praktinė spraga yra reikšminga: dauguma sutikimo valdymo platformų yra suprojektuotos aplink slapukų blokavimą ir slapukų kategorijas. LocalStorage įrašai vyksta per JavaScript, kurią CMP gali nesuinteresuoti, nebent ji būtų specialiai sukonfigūruota tai daryti. Štai kodėl LocalStorage po radarų: kodėl jis taip pat reikalauja aiškaus vartotojo sutikimo nėra tik teorinė problema, tai yra aktyvi atitikties akla zona dideliam svetainių skaičiui [3].
Kodėl LocalStorage reikalauja aiškaus vartotojo sutikimo
LocalStorage reikalauja aiškaus sutikimo, nes tai yra informacijos pasiekimas arba saugojimas vartotojo įrenginyje, veiksmas, reguliuojamas ePrivacy direktyvos (ir jos nacionalinių įgyvendinimų) nepriklausomai nuo to, ar asmeniniai duomenys yra įtraukti. Teisiniai ekspertai klasifikuoja LocalStorage kaip "panašią technologiją" slapukams pagal JK teisę, reikalaujant išankstinio, informuoto ir laisvai suteikto sutikimo prieš bet kokį nebūtiną saugojimą [4].
Pagrindinė logika yra paprasta: įstatymas saugo vartotojo įrenginį kaip jų privatumo sferos pratęsimą. Nesvarbu, ar duomenys saugomi slapuke, LocalStorage, IndexedDB ar tarnybos darbuotojo talpykloje, teisinis veiksnys yra pats saugojimo veiksmas, o ne formatas.
Trys galiojančio sutikimo sąlygos (pagal ICO gaires) [1]:
- Laisvai suteiktas, nesusiejant sutikimo su paslaugų teikimo sąlygų priėmimu.
- Specifinis ir informuotas, vartotojas turi žinoti, kas yra saugoma ir kodėl.
- Nedviprasmiškas, sutikimas turi būti gautas iš aiškaus teigiamo veiksmo, pavyzdžiui, pažymint žymimąjį laukelį.
Ar LocalStorage laikomas sekimu pagal privatumo įstatymus
LocalStorage laikomas sekimu, kai jis naudojamas identifikuoti, profiliuoti ar stebėti vartotojus per sesijas ar puslapius. Analizės vartotojo ID, A/B testų priskyrimas ar elgesio segmento žymė, saugoma LocalStorage, laikoma sekimu pagal daugumą reguliavimo interpretacijų, nepriklausomai nuo to, ar tie duomenys vėliau sinchronizuojami su serveriu.
Tai yra LocalStorage po radarų: kodėl jis taip pat reikalauja aiškaus vartotojo sutikimo esmė, daugelis kūrėjų traktuoja LocalStorage kaip neutralią talpyklą, kai reguliuotojai vertina bet kurį nuolatinį įrenginio identifikatorių kaip potencialų sekimo vektorių, reikalaujantį sutikimo.
Ar galite saugoti asmens duomenis LocalStorage
Techniniu požiūriu, taip, tačiau tai kelia didelę teisinę riziką ir paprastai nerekomenduojama. Asmeniniai duomenys, saugomi LocalStorage (pavyzdžiui, el. pašto adresai, įrenginio pirštų atspaudų komponentai ar vartotojo ID, susiję su profiliais), yra taikomi visoms GDPR pareigoms: teisėtas pagrindas, duomenų minimizavimas, saugojimo ribos ir teisė į ištrynimą [1].
Rizikos, susijusios su LocalStorage:
- Duomenys išlieka neribotai, nebent jie būtų aiškiai išvalyti, todėl laikymosi atitiktis yra sudėtinga.
- Bet kuris JavaScript puslapyje (įskaitant trečiųjų šalių skriptus) gali potencialiai pasiekti LocalStorage duomenis iš tos pačios kilmės.
- Nėra įmontuoto šifravimo; jautrūs duomenys, saugomi paprastu tekstu, yra prieinami bet kam, turinčiam prieigą prie įrenginio arba per XSS pažeidžiamumus.
Rekomendacija: Venkite saugoti identifikuojamus asmens duomenis LocalStorage. Jei saugojimas yra būtinas, užtikrinkite, kad būtų gautas sutikimas, duomenys būtų minimizuoti, o aiški ištrynimo mechanika egzistuotų.
LocalStorage vs SessionStorage: privatumo pasekmės
SessionStorage veikia identiškai LocalStorage pagal Web Storage API, tačiau duomenys išvalomi, kai naršyklės skirtukas ar langas uždaromas. Nepaisant šio trumpesnio gyvavimo, SessionStorage taikomos tos pačios sutikimo reikalavimai, kai naudojamas sekimui ar analizei [6].
Pagrindinis skirtumas atitikties tikslais:
- SessionStorage gali būti laikomas griežtai būtinu lengviau (pavyzdžiui, išlaikant būseną per daugiapakopį atsiskaitymą), nes duomenys neišlieka po sesijos.
- LocalStorage beveik visada reikalauja sutikimo sekimo naudojimo atvejams, nes jo nuolatinumas sukuria ilgalaikį identifikatorių vartotojo įrenginyje.
Nėra jokio mechanizmo, kuris būtų iš esmės atleistas nuo privatumo įstatymo. Saugojimo tikslas ir turinys nustato sutikimo pareigą, o ne pats saugojimo tipas.
Ką daryti, jei naudojate LocalStorage be sutikimo
Naudojant LocalStorage nebūtinoms reikmėms be galiojančio išankstinio sutikimo, tai yra ePrivacy direktyvos pažeidimas, o kai asmeniniai duomenys yra įtraukti, ir GDPR. Pasekmės gali apimti reguliavimo tyrimą, vykdymo veiksmus ir reputacijos žalą.
Be reguliavimo rizikos, atsiranda vis didesnė techninė vykdymo dimensija: naršyklės privatumo funkcijos ir skelbimų blokatoriai vis dažniau taikosi į LocalStorage pagrindu veikiančius sekimus. Svetainės, remiasi nesutiktais LocalStorage analizei ar personalizavimui, gali pastebėti, kad jų duomenys tampa vis mažiau patikimi, kai šie įrankiai tampa vis labiau paplitę.
Praktinis ekspozicijos kontrolinis sąrašas:
- Trečiųjų šalių analizės skriptai, rašantys LocalStorage identifikatorius be sutikimo.
- A/B testavimo įrankiai, saugantys variantų priskyrimus prieš sutikimą.
- Pokalbių valdikliai ar palaikymo įrankiai, inicijuojantys LocalStorage puslapio užkrovimo metu prieš bet kokį vartotojo sąveiką.
- Retargeting pixeliai, naudojantys LocalStorage kaip slapuko sinchronizavimo atsarginę kopiją.
Kaip įgyvendinti LocalStorage sutikimą savo svetainėje
Įgyvendinant LocalStorage sutikimą, reikia sutikimo valdymo platformos, kuri gali blokuoti JavaScript vykdymą, o ne tik slapukų nustatymą, kol vartotojas nepriėmė galiojančio sutikimo pasirinkimo. Standartiniai slapukų skydeliai, kurie veikia tik HTTP lygyje, nesuinteresuos LocalStorage įrašų, kuriuos atlieka JavaScript [3].
Žingsnis po žingsnio įgyvendinimo požiūris:
- Audituokite savo LocalStorage naudojimą. Naudokite naršyklės kūrėjo įrankius (Programos skirtukas) ir skriptų skenerį, kad nustatytumėte kiekvieną raktą, įrašytą į LocalStorage, kuris skriptas jį rašo ir kokiu tikslu.
- Klasifikuokite kiekvieną naudojimą. Klasifikuokite saugojimą kaip griežtai būtina, funkcionalią, analitinę ar rinkodaros. Tik griežtai būtinas saugojimas gali vykti be sutikimo.
- Pasirinkite CMP, kuri apima LocalStorage. Užtikrinkite, kad jūsų sutikimo valdymo platforma gali blokuoti arba atidėti JavaScript vykdymą nebūtinoms skriptams, kol sutikimas bus suteiktas. Biscotti CMP yra sukurta šiam skripto lygio sutikimo valdymui.
- Įgyvendinkite sutikimu pagrįstą skriptų įkrovimą. Nebūtini skriptai, rašantys į LocalStorage, turėtų būti įkeliami tik po to, kai vartotojas priėmė atitinkamą sutikimo kategoriją.
- Pateikite aiškią sutikimo vartotojo sąsają. Sutikimo skydelis turi apibūdinti LocalStorage naudojimą paprasta kalba, klasifikuojant pagal tikslą, su smulkiais pasirinkimo variantais.
- Įgyvendinkite atšaukimo ir ištrynimo mechanizmą. Kai vartotojas atšaukia sutikimą, atitinkami LocalStorage raktai turi būti nedelsiant išvalyti.
Kaip ištrinti LocalStorage duomenis po vartotojo sutikimo atšaukimo
Kai vartotojas atšaukia sutikimą, svetainė turi nedelsdama ištrinti bet kokius LocalStorage duomenis, kurie buvo surinkti pagal tą sutikimą. Tai nėra pasirinktinė, teisė atšaukti sutikimą ir turėti susijusius duomenis pašalintus yra pagrindinė GDPR principas.
Įgyvendinimo modelis: