Što su kolačići? Kako vas web sajtovi pamte
Kolačić je mali tekstualni zapis koji web sajt traži od vašeg preglednika da sačuva, a zatim ga šalje nazad pri svakoj sljedećoj posjeti tom sajtu. Tako web sajt "pamti" vas: da ste prijavljeni, šta je u vašoj korpi, koji jezik ste odabrali. Kolačići su samo podaci, a ne programi, ali zato što mogu identifikovati vas, važni su i za sigurnost i za privatnost.
Zašto je to važno kada gradite uz AI
Kolačići leže ispod nekoliko funkcija koje ćete tražiti od AI alata za gradnju, često bez da riječ "kolačić" uopšte bude spomenuta:
- Prijava. U većini web aplikacija, "ostani prijavljen" znači kolačić sesije. Kako je taj kolačić podešen, određuje koliko ga je lako ukrasti.
- Korpe i postavke. Korpa koja preživi osvježavanje stranice često se oslanja na kolačić ili na skladište preglednika.
- Analitika i oglasi. Dodavanje Google Analyticsa, Meta piksela ili widgeta za chat obično dodaje kolačiće drugih kompanija.
- Pravne obavijesti. Na mnogo mjesta, neki kolačići zahtijevaju prethodnu saglasnost posjetioca, odatle dolaze obavještenja o kolačićima.
Ako znate koje kolačiće vaša aplikacija postavlja i zašto, možete donositi bolje odluke o sigurnosnim postavkama, saglasnosti i vašoj politici privatnosti.
Svakodnevna analogija
Zamislite listić u garderobi. Predate kaput i dobijete numerisani listić. Listić ne sadrži vaš kaput, samo broj. Svaki put kada dođete do šaltera pokažete listić, a službenik zna koji kaput je vaš.
Kolačić sesije funkcioniše isto. Kada se prijavite, server čuva vaše podatke na svojoj strani i daje vašem pregledniku listić, dug nasumičan ID. Vaš preglednik pokazuje taj listić uz svaki zahtjev, a server gleda ko ste. Ko god kopira listić može preuzeti kaput, zato kolačići za prijavu moraju biti zaštićeni.
Kako kolačić zapravo funkcioniše
- Posjetite sajt. Odgovor servera uključuje zaglavlje poput
Set-Cookie: session_id=8f3k...; HttpOnly; Secure; SameSite=Lax. - Vaš preglednik ga čuva, vezanog za domen tog sajta.
- Pri svakom sljedećem zahtjevu istom sajtu, preglednik automatski dodaje
Cookie: session_id=8f3k.... - Server ga čita i zna da ste to vi.
JavaScript stranice također može kreirati kolačiće, ali najvažniji među njima, kolačići sesija za prijavu, treba da postavi server i sakrije ih od JavaScripta.
Vrste kolačića
| Vrsta | Šta znači | Primjer |
|---|---|---|
| Kolačić sesije | Nema datum isteka; briše se kada se sesija preglednika završi | Kratak korak u plaćanju |
| Trajni kolačić | Ima datum isteka (Expires ili Max-Age) i preživljava ponovna pokretanja | "Zapamti me 30 dana" |
| Prve strane | Postavlja sajt u adresnoj traci | Vaša prijava na tom sajtu |
| Treće strane | Postavlja drugi domen ugrađen u stranicu | ID praćenja mreže oglasa |
| Striktno potrebni | Potrebni su za uslugu koju je korisnik zatražio | Sesija prijave, korpa za kupovinu |
| Nebitni | Korisni za vlasnika sajta, ali nisu neophodni | Analitika, oglasi, A/B testiranje |
Preglednici su postepeno ograničavali kolačiće trećih strana jer se koriste za praćenje ljudi kroz web sajtove. Nekoliko većih preglednika sada mnoge od njih blokira po zadanom, a detalji se stalno mijenjaju, pa ne gradite ništa važno na kolačićima trećih strana.
Radni primjer: mala online prodavnica
Recimo da ste napravili prodavnicu koja prodaje ručno rađene svijeće. Evo kolačića koje bi razumna verzija postavila i zašto.
session: postavlja se kada se vlasnik ili kupac prijavi. Sadrži samo nasumičan ID; server čuva stvarne podatke sesije. 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 drugi sajtovi). Striktno potreban.
cart_id: omogućava posjetiocu koji nije prijavljen da zadrži svoju korpu. Pokazuje na korpu sačuvanu u bazi podataka. Striktno potreban, jer je posjetilac sam zatražio da doda stvari u korpu.
theme: pamti tamni režim. Ovo bi moglo biti kolačić, ali nikada ne mora stići do servera, pa je browser localStorage jednostavniji.
Kolačići analitike: dodaju se ako instalirate alat za analitiku. Oni su nebitni. U EU i UK obično zahtijevaju saglasnost prije postavljanja, pa skripta analitike treba da čeka dok posjetilac ne klikne "Prihvati".
Primijetite šta prodavnica ne čuva u kolačićima: ime kupca, adresu ili podatke o kartici. Kolačići putuju uz svaki zahtjev i žive na uređaju korisnika, pa treba da sadrže ID-ove, a ne lične podatke.
Uobičajeni pojmovi objašnjeni
| Pojam | Šta znači |
|---|---|
| Kolačić | Mali par naziv–vrijednost koji preglednik čuva i šalje nazad sajtu. |
Set-Cookie | Zaglavlje odgovora kojim server kreira ili ažurira kolačić. |
| Sesija | Serverov zapis o prijavljenom korisniku, povezan s ID-om kolačića. |
HttpOnly | Sprječava JavaScript stranice da pročita kolačić, što ograničava štetu od ubačenih skripti. |
Secure | Kolačić se šalje samo preko šifrovanih HTTPS veza. |
SameSite | Kontroliše da li se kolačić šalje uz zahtjeve s drugih sajtova (Strict, Lax ili None). |
Expires / Max-Age | Kada kolačić treba obrisati. |
| Domain / Path | Koje adrese na sajtu primaju kolačić. |
| localStorage | Skladište preglednika koje kod stranice može čitati, ali koje se automatski ne šalje serveru. |
| XSS | Cross-site scripting: napadačeva skripta koja se izvršava na vašoj stranici i može pokušati ukrasti podatke. |
| CSRF | Cross-site request forgery: drugi sajt koji navodi preglednik da pošalje zahtjev s vašim kolačićima. |
| Saglasnost za kolačiće | Traženje dozvole posjetilaca prije postavljanja nebitnih kolačića. |
Uobičajene greške i zablude
- "Kolačići su virusi." Oni su običan tekst. Ne mogu pokretati kod na vašem računaru.
- Stavljanje osjetljivih podataka u kolačiće. Čuvajte nasumičan ID, a detalje držite na serveru.
- Tokeni za prijavu u localStorage-u. Svaka skripta koja se izvršava na stranici može ih pročitati, uključujući i ubačenu.
HttpOnlykolačić skripte stranice uopšte ne mogu čitati. - Nedostaju
SecureiHttpOnly. Ove dvije oznake su jeftine i zatvaraju česte rupe. - Pretpostavka da banner pokriva sve. Banner koji učitava analitiku prije nego iko klikne "Prihvati" ne radi svoj posao.
- Zaboravljena odjava. Odjava treba da obriše kolačić i završi sesiju na serveru, kako kopirani kolačić prestane raditi.
- "Ako ne koristim kolačiće, pravila o privatnosti se ne odnose na mene." Pravila poput GDPR-a pokrivaju lične podatke gdje god da su pohranjeni, uključujući localStorage, otiske uređaja i serverske logove.
Šta tražiti od vašeg AI alata za gradnju
- "Navedi svaki kolačić koji aplikacija postavlja, čemu služi, koliko traje i je li striktno potreban."
- "Za sesiju prijave koristi kolačić s
HttpOnly,Secure,SameSite=Laxoznakama. Ne stavljaj tokene za autentifikaciju u localStorage." - "U kolačiću čuvaj samo nasumičan ID sesije; podatke sesije čuvaj na serveru."
- "Pri odjavi obriši kolačić i poništi sesiju na serveru."
- "Ne učitavaj skripte analitike ili marketinga dok ih posjetilac ne prihvati, i zapamti njegov izbor."
- "Dodaj jednostavan odjeljak o kolačićima u politiku privatnosti koji odgovara gornjoj listi."
Za dio o saglasnosti, pogledajte kako dodati saglasnost za kolačiće. Za to kako se kolačići uklapaju u prijave, pročitajte šta je autentifikacija.
Kolačići u Mythexu
Mythex ne pruža ugrađenu prijavu za korisnike vaše aplikacije, pa kolačići koje vaša aplikacija postavlja dolaze iz njenog vlastitog koda i alata koje dodate u nju, na primjer kolačić sesije iz pristupa autentifikaciji koji odaberete. Zamolite agenta u chatu da ih navede, pooštri njihove postavke ili doda banner za saglasnost, i provjerite rezultat u živom pregledu prije objavljivanja. Recept u dokumentaciji o dodavanju prijave u vašu aplikaciju dobar je početni upit, a sigurnost za aplikacije koje gradite pokriva držanje ključeva i tajni van preglednika.
Pitanja
Što je kolačić na web sajtu?
Kolačić je mali tekstualni zapis koji web sajt traži od vašeg preglednika da sačuva. Preglednik ga šalje nazad uz svaki sljedeći zahtjev tom sajtu, što omogućava sajtu da zapamti stvari poput toga jeste li prijavljeni ili šta se nalazi u vašoj korpi.
Jesu li kolačići opasni?
Kolačići su samo podaci, a ne programi, pa ne mogu pokretati kod niti zaraziti računar. Brige su privatnost, kada kolačići trećih strana prate vas kroz više sajtova, i sigurnost, kada se kolačić za prijavu ukrade i koristi da se predstavlja kao vi.
Koja je razlika između kolačića prve i treće strane?
Kolačić prve strane postavlja sajt koji je u adresnoj traci, poput kolačića za prijavu. Kolačić treće strane postavlja drugi domen ugrađen u stranicu, na primjer mreža oglasa, i često se koristi da vas prati kroz mnoge sajtove.
Treba li mi obavještenje o kolačićima?
Zavisi od toga gdje su vaši korisnici i koje kolačiće koristite. U EU i UK, nebitni kolačići, poput analitike ili oglasa, obično zahtijevaju prethodnu saglasnost, dok kolačići koji su striktno potrebni za uslugu, poput sesije prijave, obično ne. Provjerite pravila koja se odnose na vas.
Koja je razlika između kolačića i localStorage-a?
Oboje čuvaju podatke u pregledniku. Kolačići se automatski šalju serveru uz svaki zahtjev, što odgovara prijavama. localStorage ostaje u pregledniku i čita ga samo kod same stranice, što odgovara postavkama poput teme.