Što su kolačići? Kako web-stranice vas pamte
Kolačić je mali tekstualni zapis koji web-stranica traži da vaš preglednik pohrani, a zatim ga pošalje natrag pri svakom sljedećem posjetu toj stranici. Tako web-stranica „pamti“ vas: da ste prijavljeni, što imate u košarici, koji jezik ste odabrali. Kolačići su samo podaci, a ne programi, ali budući da mogu identificirati vas, važni su i za sigurnost i za privatnost.
Zašto je to važno kad gradite s AI-jem
Kolačići leže ispod nekoliko značajki koje ćete tražiti od AI graditelja, često bez da se riječ „kolačić“ uopće spomene:
- Prijava. U većini web aplikacija „ostani prijavljen“ znači kolačić sesije. Kako je taj kolačić konfiguriran, određuje koliko ga je lako ukrasti.
- Košarice i postavke. Košarica koja preživi osvježavanje stranice često se oslanja na kolačić ili pohranu preglednika.
- Analitika i oglasi. Dodavanje Google Analyticsa, Meta piksela ili widgeta za chat obično dodaje kolačiće drugih tvrtki.
- Pravne obavijesti. Na mnogo mjesta neki kolačići traže prethodni pristanak posjetitelja, a odatle dolaze obavijesti o kolačićima.
Ako znate koje kolačiće vaša aplikacija postavlja i zašto, možete bolje birati sigurnosne postavke, pristanak i pravilnik o privatnosti.
Svakodnevna usporedba
Zamislite garderobni listić. Predate kaput i dobijete brojčani listić. Listić ne sadrži vaš kaput, samo broj. Svaki put kad se vratite na šalter pokažete listić, a službenik zna koji je vaš kaput.
Kolačić sesije radi isto. Kad se prijavite, poslužitelj zadržava vaše podatke na svojoj strani i daje pregledniku listić, dug nasumičan ID. Vaš preglednik pokazuje taj listić uz svaki zahtjev, a poslužitelj pogleda tko ste. Tko god kopira listić može uzeti kaput, zato kolačići za prijavu moraju biti zaštićeni.
Kako kolačić zapravo radi
- Posjetite stranicu. Odgovor poslužitelja uključuje zaglavlje poput
Set-Cookie: session_id=8f3k...; HttpOnly; Secure; SameSite=Lax. - Vaš preglednik ga sprema, vezano uz domenu te stranice.
- Pri svakom sljedećem zahtjevu prema istoj stranici preglednik automatski dodaje
Cookie: session_id=8f3k.... - Poslužitelj ga čita i zna da ste to vi.
JavaScript stranice također može stvarati kolačiće, ali najvažnije, one za prijavu sesije, trebao bi postavljati poslužitelj i sakriti ih od JavaScripta.
Vrste kolačića
| Vrsta | Što znači | Primjer |
|---|---|---|
| Kolačić sesije | Nema datum isteka; briše se kad se sesija preglednika završi | Kratki korak plaćanja |
| Trajni kolačić | Ima datum isteka (Expires ili Max-Age) i preživljava ponovna pokretanja | „Zapamti me 30 dana“ |
| Prve strane | Postavlja stranica u adresnoj traci | Vaša prijava na toj stranici |
| Treće strane | Postavlja druga domena ugrađena na stranicu | ID praćenja mreže oglasa |
| Nužni | Potrebni za uslugu koju je korisnik zatražio | Sesija prijave, košarica za kupnju |
| Neesencijalni | Korisni vlasniku stranice | Analitika, oglašavanje, A/B testiranje |
Preglednici su postupno ograničavali kolačiće trećih strana jer se koriste za praćenje ljudi kroz web-stranice. Nekoliko većih preglednika sada ih mnoge blokira prema zadanim postavkama, a detalji se stalno mijenjaju, pa ništa važno ne gradite na kolačićima trećih strana.
Primjer: mala online trgovina
Recimo da ste izradili trgovinu koja prodaje ručno izrađene svijeće. Evo kolačića koje bi razumna verzija postavljala i zašto.
session: postavlja se kad se vlasnik ili kupac prijavi. Sadrži samo nasumičan ID; pravi podaci sesije su na poslužitelju. Postavke: HttpOnly (skripte stranice ga ne mogu čitati), Secure (šalje se samo preko HTTPS-a), SameSite=Lax (ne šalje se uz većinu zahtjeva koje pokreću druge stranice). Nužan.
cart_id: omogućuje posjetitelju koji nije prijavljen da zadrži košaricu. Pokazuje na košaricu spremljenu u bazi podataka. Nužan, jer je posjetitelj zatražio da doda stvari u košaricu.
theme: pamti tamni način rada. Ovo bi mogao biti kolačić, ali nikad ne treba stići do poslužitelja, pa je localStorage preglednika jednostavniji.
Kolačići analitike: dodaju se ako instalirate alat za analitiku. Neesencijalni su. U EU i Velikoj Britaniji općenito traže pristanak prije postavljanja, pa skripta analitike treba čekati dok posjetitelj ne klikne „Prihvati“.
Primijetite što trgovina ne sprema u kolačiće: ime kupca, adresu ili podatke o kartici. Kolačići putuju uz svaki zahtjev i žive na uređaju korisnika, pa trebaju sadržavati ID-jeve, a ne osobne podatke.
Uobičajeni pojmovi objašnjeni
| Pojam | Što znači |
|---|---|
| Kolačić | Mali par naziv–vrijednost koji preglednik pohranjuje i šalje natrag stranici. |
Set-Cookie | Zaglavlje odgovora kojim poslužitelj stvara ili ažurira kolačić. |
| Sesija | Zapis poslužitelja o prijavljenom korisniku, povezan s ID-jem kolačića. |
HttpOnly | Sprječava da JavaScript stranice čita kolačić, što ograničava štetu od ubačenih skripti. |
Secure | Kolačić se šalje samo preko šifriranih HTTPS veza. |
SameSite | Kontrolira hoće li se kolačić slati uz zahtjeve s drugih stranica (Strict, Lax ili None). |
Expires / Max-Age | Kad kolačić treba obrisati. |
| Domain / Path | Koje adrese na stranici primaju kolačić. |
| localStorage | Pohrana preglednika koju može čitati kod stranice, ali koja se automatski ne šalje poslužitelju. |
| XSS | Cross-site scripting: napadačeva skripta koja radi na vašoj stranici i može pokušati ukrasti podatke. |
| CSRF | Cross-site request forgery: druga stranica navodi preglednik da pošalje zahtjev s vašim kolačićima. |
| Pristanak na kolačiće | Traženje dopuštenja posjetitelja prije postavljanja neesencijalnih kolačića. |
Uobičajene greške i zablude
- „Kolačići su virusi.“ Obični su tekst. Ne mogu izvršavati kod na vašem računalu.
- Stavljanje osjetljivih podataka u kolačiće. Spremite nasumičan ID, a pojedinosti držite na poslužitelju.
- Tokeni za prijavu u localStorageu. Svaka skripta koja radi na stranici može čitati localStorage, uključujući ubačenu. Kolačić s
HttpOnlyskripte stranice uopće ne mogu čitati. - Nedostatak
SecureiHttpOnly. Ove dvije oznake su jeftine i zatvaraju česte rupe. - Pretpostavka da banner pokriva sve. Banner koji učitava analitiku prije nego što itko klikne „Prihvati“ ne radi svoj posao.
- Zaboravljena odjava. Odjava treba obrisati kolačić i završiti sesiju na poslužitelju, da kopirani kolačić prestane raditi.
- „Ako ne koristim kolačiće, pravila o privatnosti se ne primjenjuju.“ Pravila poput GDPR-a pokrivaju osobne podatke gdje god se pohranjuju: lokalnu pohranu, otiske uređaja i zapise poslužitelja.
Što tražiti od AI graditelja
- „Popiši svaki kolačić koji aplikacija postavlja, čemu služi, koliko traje i je li nužan.“
- „Za sesiju prijave koristi kolačić s
HttpOnly,Secure,SameSite=Lax. Ne stavljaj tokene za autentifikaciju u localStorage.“ - „U kolačiću drži samo nasumičan ID sesije; podatke sesije drži na poslužitelju.“
- „Pri odjavi obriši kolačić i poništi sesiju na poslužitelju.“
- „Ne učitavaj analitičke ni marketinške skripte dok posjetitelj ne prihvati i zapamti njegov izbor.“
- „Dodaj kratak odjeljak o kolačićima u pravilnik o privatnosti koji odgovara gornjem popisu.“
Za dio o pristanku pogledajte kako dodati pristanak na kolačiće. Za to kako se kolačići uklapaju u prijave, pročitajte što je autentifikacija.
Kolačići u Mythexu
Mythex ne daje ugrađenu prijavu za korisnike vaše aplikacije, pa kolačići koje vaša aplikacija postavlja dolaze iz njezinog vlastitog koda i alata koje dodate. Primjerice, kolačić sesije iz pristupa autentifikaciji koji odaberete. U chatu zamolite agenta da ih popiše, pooštri njihove postavke ili doda banner za pristanak, a rezultat provjerite u živom pregledu prije objave. Recept iz dokumentacije o dodavanju prijave u vašu aplikaciju dobro je polazište za upit, a sigurnost za aplikacije koje gradite pokriva držanje ključeva i tajni podalje od preglednika.
Pitanja
Što je kolačić na web-stranici?
Kolačić je mali tekstualni zapis koji web-stranica traži da pohrani vaš preglednik. Preglednik ga vraća uz svaki sljedeći zahtjev prema toj stranici, što omogućuje da stranica pamti stvari poput toga jeste li prijavljeni ili što imate u košarici.
Jesu li kolačići opasni?
Kolačići su samo podaci, a ne programi, pa ne mogu izvršavati kod niti zaraziti računalo. Zabrinutost se odnosi na privatnost, kad kolačići trećih strana prate vas kroz više stranica, i na sigurnost, kad se ukrade kolačić za prijavu i koristi za predstavljanje kao vi.
Koja je razlika između kolačića prve i treće strane?
Kolačić prve strane postavlja stranica koju vidite u adresnoj traci, primjerice kolačić za prijavu. Kolačić treće strane postavlja druga domena ugrađena na stranicu, primjerice mreža oglasa, i često se koristi za praćenje kroz mnoge stranice.
Trebam li obavijest o kolačićima?
To ovisi o tome gdje su vam korisnici i koje kolačiće koristite. U EU i Velikoj Britaniji neesencijalni kolačići, poput analitike ili oglašavanja, općenito traže prethodni pristanak, dok kolačići koji su nužni za uslugu, poput sesije prijave, obično ne. Provjerite pravila koja se primjenjuju na vas.
Koja je razlika između kolačića i localStorage-a?
Oba pohranjuju podatke u pregledniku. Kolačići se automatski šalju poslužitelju uz svaki zahtjev, što odgovara prijavama. localStorage ostaje u pregledniku i čita ga samo kod same stranice, što odgovara postavkama poput teme.