Kas yra slapukai? Kaip svetainės jus atpažįsta
Slapukas yra nedidelis tekstas, kurį svetainė paprašo jūsų naršyklės išsaugoti ir siųsti atgal kiekvieno vėlesnio apsilankymo metu toje svetainėje. Taip svetainė „prisimena“ jus: kad esate prisijungę, kas yra krepšelyje, kokią kalbą pasirinkote. Slapukai yra tik duomenys, o ne programos, bet kadangi jie gali jus identifikuoti, jie svarbūs ir saugumui, ir privatumui.
Kodėl tai svarbu kuriant su DI
Slapukai slypi po keliomis funkcijomis, kurių prašysite DI programėlių kūrėjo, dažnai net nepaminėdami žodžio „slapukas“:
- Prisijungimas. Daugelyje žiniatinklio programėlių „likti prisijungus“ reiškia sesijos slapuką. Tai, kaip tas slapukas sukonfigūruotas, lemia, kaip lengva jį pavogti.
- Krepšeliai ir nuostatos. Krepšelis, kuris išlieka perkrovus puslapį, dažnai remiasi slapuku arba naršyklės saugykla.
- Analitika ir skelbimai. Pridėjus Google Analytics, Meta pikselį ar pokalbių valdiklį, paprastai atsiranda kitų įmonių slapukų.
- Teisiniai pranešimai. Daugelyje vietų kai kuriems slapukams lankytojo sutikimas reikalingas iš anksto, todėl atsiranda slapukų pranešimai.
Jei žinote, kokius slapukus jūsų programa nustato ir kodėl, galite geriau pasirinkti saugumo nustatymus, sutikimą ir privatumo politiką.
Kasdienė analogija
Pagalvokite apie drabužinės bilietėlį. Paduodate paltą ir gaunate numeruotą bilietėlį. Bilietėlyje nėra jūsų palto – tik numeris. Kaskart grįždami prie langelio parodote bilietėlį, o darbuotojas žino, kuris paltas jūsų.
Sesijos slapukas veikia taip pat. Prisijungus serveris savo pusėje laiko jūsų duomenis, o naršyklei duoda bilietėlį – ilgą atsitiktinį ID. Naršyklė rodo tą bilietėlį su kiekviena užklausa, o serveris pagal jį suranda, kas jūs esate. Kas nukopijuoja bilietėlį, gali pasiimti paltą, todėl prisijungimo slapukus reikia saugoti.
Kaip iš tikrųjų veikia slapukas
- Apsilankote svetainėje. Serverio atsakyme yra antraštė, pavyzdžiui
Set-Cookie: session_id=8f3k...; HttpOnly; Secure; SameSite=Lax. - Naršyklė ją išsaugo, susiedama su tos svetainės domenu.
- Su kiekviena vėlesne užklausa tai pačiai svetainei naršyklė automatiškai prideda
Cookie: session_id=8f3k.... - Serveris jį perskaito ir žino, kad tai jūs.
Puslapio JavaScript taip pat gali kurti slapukus, bet svarbiausius – prisijungimo sesijas – turėtų nustatyti serveris ir paslėpti nuo JavaScript.
Slapukų tipai
| Tipas | Ką reiškia | Pavyzdys |
|---|---|---|
| Sesijos slapukas | Be galiojimo datos; ištrinamas, kai baigiasi naršyklės sesija | Trumpalaikis apmokėjimo žingsnis |
| Nuolatinis slapukas | Turi galiojimo datą (Expires ar Max-Age) ir išlieka po perkrovimų | „Prisimink mane 30 dienų“ |
| Pirmosios šalies | Nustato svetainė, matoma adreso juostoje | Jūsų prisijungimas toje svetainėje |
| Trečiosios šalies | Nustato kitas domenas, įterptas į puslapį | Reklamų tinklo sekimo ID |
| Griežtai būtini | Reikalingi paslaugai, kurios paprašė naudotojas | Prisijungimo sesija, pirkinių krepšelis |
| Nebūtini | Naudingi svetainės savininkui | Analitika, reklama, A/B testavimas |
Naršyklės nuosekliai riboja trečiųjų šalių slapukus, nes jie naudojami sekti žmones per svetaines. Kelios pagrindinės naršyklės dabar daugelį jų blokuoja pagal numatytuosius nustatymus, o detalės nuolat keičiasi, todėl nekurkite nieko svarbaus ant trečiųjų šalių slapukų.
Darbo pavyzdys: nedidelė internetinė parduotuvė
Sakykime, sukūrėte parduotuvę, pardavinėjančią rankų darbo žvakes. Štai slapukai, kuriuos nustatytų protinga versija, ir kodėl.
session – nustatomas, kai savininkas ar klientas prisijungia. Jame yra tik atsitiktinis ID; tikrus sesijos duomenis saugo serveris. Nustatymai: HttpOnly (puslapio skriptai negali jo perskaityti), Secure (siunčiamas tik per HTTPS), SameSite=Lax (nesiunčiamas daugumai užklausų, pradėtų kitų svetainių). Griežtai būtinas.
cart_id – leidžia neprisijungusiam lankytojui išlaikyti krepšelį. Jis nukreipia į krepšelį, išsaugotą duomenų bazėje. Griežtai būtinas, nes lankytojas pats paprašė įdėti prekių į krepšelį.
theme – prisimena tamsųjį režimą. Tai galėtų būti slapukas, bet jam niekada nereikia pasiekti serverio, todėl paprasčiau naudoti naršyklės localStorage.
Analitikos slapukai – pridedami, jei įdiegiate analitikos įrankį. Tai nebūtini slapukai. ES ir JK jiems paprastai reikia sutikimo prieš nustatant, todėl analitikos scenarijus turėtų laukti, kol lankytojas paspaus „Sutinku“.
Atkreipkite dėmesį, ko parduotuvė nesaugo slapukuose: kliento vardo, adreso ar kortelės duomenų. Slapukai keliauja su kiekviena užklausa ir gyvena naudotojo įrenginyje, todėl jie turėtų saugoti ID, o ne asmens duomenis.
Dažnos sąvokos paaiškintos
| Sąvoka | Ką reiškia |
|---|---|
| Slapukas | Nedidelė pavadinimo ir reikšmės pora, kurią naršyklė saugo ir siunčia atgal svetainei. |
Set-Cookie | Atsakymo antraštė, kuria serveris sukuria ar atnaujina slapuką. |
| Sesija | Serverio įrašas apie prisijungusį naudotoją, susietas su slapuko ID. |
HttpOnly | Neleidžia puslapio JavaScript skaityti slapuko, o tai riboja žalą nuo įterptų skriptų. |
Secure | Slapukas siunčiamas tik per šifruotus HTTPS ryšius. |
SameSite | Nustato, ar slapukas siunčiamas užklausose iš kitų svetainių (Strict, Lax ar None). |
Expires / Max-Age | Kada slapukas turi būti ištrintas. |
| Domain / Path | Kurie svetainės adresai gauna slapuką. |
| localStorage | Naršyklės saugykla, kurią gali skaityti puslapio kodas, bet kuri automatiškai nesiunčiama serveriui. |
| XSS | Kryžminis svetainių scenarijų vykdymas: išpuoliuotojo skriptas, veikiantis jūsų puslapyje, kuris gali bandyti pavogti duomenis. |
| CSRF | Kryžminė svetainių užklausų klastotė: kita svetainė priverčia naršyklę siųsti užklausą su jūsų slapukais. |
| Slapukų sutikimas | Prašymas lankytojų leidimo prieš nustatant nebūtinus slapukus. |
Dažnos klaidos ir klaidingi įsitikinimai
- „Slapukai yra virusai.“ Jie yra paprastas tekstas. Jie negali vykdyti kodo jūsų kompiuteryje.
- Jautrių duomenų dėjimas į slapukus. Saugokite atsitiktinį ID, o detales laikykite serveryje.
- Prisijungimo žymekliai localStorage. Bet kuris puslapyje veikiantis skriptas gali perskaityti localStorage, įskaitant įterptą.
HttpOnlyslapuko puslapio skriptai visai negali perskaityti. - Trūkstami
SecureirHttpOnly. Šios dvi vėliavėlės nebrangios ir užkerta kelią dažnoms spragoms. - Manymas, kad pranešimas viską apima. Pranešimas, kuris įkelia analitiką prieš tai, kai kas nors paspaudžia „Sutinku“, savo darbo neatlieka.
- Atsijungimo pamiršimas. Atsijungimas turėtų ištrinti slapuką ir baigti sesiją serveryje, kad nukopijuotas slapukas nebeveiktų.
- „Jei nenaudoju slapukų, privatumo taisyklės netaikomos.“ Taisyklės, tokios kaip BDAR, apima asmens duomenis, kur jie bebūtų saugomi – įskaitant localStorage, įrenginių pirštų atspaudus ir serverio žurnalus.
Ko prašyti iš savo DI programėlių kūrėjo
- „Išvardykite kiekvieną programos nustatomą slapuką, kam jis skirtas, kiek laiko galioja ir ar jis griežtai būtinas.“
- „Prisijungimo sesijai naudokite
HttpOnly,Secure,SameSite=Laxslapuką. Autentifikacijos žymeklių nedėkite į localStorage.“ - „Slapuke laikykite tik atsitiktinį sesijos ID; sesijos duomenis saugokite serveryje.“
- „Atsijungiant išvalykite slapuką ir serveryje panaikinkite sesiją.“
- „Neįkelkite analitikos ar rinkodaros scenarijų, kol lankytojas jų nepriims, ir prisiminkite jo pasirinkimą.“
- „Pridėkite paprastą slapukų skyrių privatumo politikai, atitinkantį aukščiau pateiktą sąrašą.“
Dėl sutikimo dalies žr. kaip pridėti slapukų sutikimą. Kaip slapukai susiję su prisijungimais, skaitykite kas yra autentifikacija.
Slapukai Mythex
Mythex nesuteikia įmontuoto prisijungimo jūsų programos naudotojams, todėl slapukus, kuriuos nustato jūsų programa, sukuria jos pačios kodas ir įrankiai, kuriuos į ją pridedate – pavyzdžiui, sesijos slapukas pagal jūsų pasirinktą autentifikacijos metodą. Pokalbyje paprašykite agento juos išvardyti, sugriežtinti jų nustatymus ar pridėti sutikimo pranešimą, o prieš publikuodami patikrinkite rezultatą gyvoje peržiūroje. Dokumentacijos receptas prisijungimo pridėjimas prie programos yra geras pradinis užklausos pavyzdys, o programų, kurias kuriate, saugumas aprašo, kaip laikyti raktus ir paslaptis nepasiekiamus naršyklėje.
Klausimai
Kas yra slapukas svetainėje?
Slapukas yra nedidelis tekstas, kurį svetainė paprašo jūsų naršyklės išsaugoti. Naršyklė jį siunčia atgal su kiekviena vėlesne užklausa tai svetainei, o tai leidžia svetainei prisiminti tokius dalykus kaip tai, ar esate prisijungę, ar kas nors yra jūsų krepšelyje.
Ar slapukai pavojingi?
Slapukai yra tik duomenys, o ne programos, todėl jie negali vykdyti kodo ar užkrėsti kompiuterio. Rūpesčiai yra privatumas, kai trečiųjų šalių slapukai seka jus per svetaines, ir saugumas, kai prisijungimo slapukas pavagiamas ir naudojamas jums įsilaužti.
Kuo skiriasi pirmosios ir trečiosios šalies slapukai?
Pirmosios šalies slapuką nustato svetainė, kurią matote adreso juostoje, pavyzdžiui, prisijungimo slapukas. Trečiosios šalies slapuką nustato kitas domenas, įterptas į puslapį, pavyzdžiui, reklamų tinklas, ir dažnai naudojamas sekti jus per daugelį svetainių.
Ar man reikia slapukų pranešimo?
Tai priklauso nuo to, kur yra jūsų naudotojai ir kokius slapukus naudojate. ES ir JK nebūtiniems slapukams, pavyzdžiui, analitikai ar reklamai, paprastai reikia sutikimo iš anksto, o griežtai būtinų paslaugai slapukų, pavyzdžiui, prisijungimo sesijos, paprastai nereikia. Patikrinkite jums taikomas taisykles.
Kuo skiriasi slapukai ir localStorage?
Abu saugo duomenis naršyklėje. Slapukai automatiškai siunčiami serveriui su kiekviena užklausa, todėl tinka prisijungimams. localStorage lieka naršyklėje ir jį skaito tik paties puslapio kodas, todėl tinka nuostatoms, pavyzdžiui, temai.