Šta su kolačići? Kako vas sajtovi pamte
Kolačić je mali tekstualni zapis koji sajt traži od vašeg pregledača da sačuva, a zatim ga pošalje nazad pri svakoj sledećoj poseti tom sajtu. Tako sajt „pamti“ vas: da ste prijavljeni, šta je u vašoj korpi, koji jezik ste izabrali. Kolačići su samo podaci, a ne programi, ali pošto mogu da identifikuju vas, važni su i za bezbednost i za privatnost.
Zašto je to važno kada pravite uz AI
Kolačići stoje ispod nekoliko funkcija koje ćete tražiti od AI alata za pravljenje, često bez da reč „kolačić“ uopšte bude pomenuta:
- 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 podešavanja. Korpa koja preživi osvežavanje stranice često se oslanja na kolačić ili na skladište u pregledaču.
- Analitika i oglasi. Dodavanje Google Analytics-a, Meta piksela ili widget-a za ćaskanje obično dodaje kolačiće drugih kompanija.
- Pravna obaveštenja. Na mnogim mestima neki kolačići zahtevaju prethodnu saglasnost posetioca, odakle dolaze baneri za kolačiće.
Ako znate koje kolačiće vaša aplikacija postavlja i zašto, možete da donosite bolje odluke o bezbednosnim podešavanjima, saglasnosti i politici privatnosti.
Svakodnevna analogija
Zamislite kartu iz garderobe. Predate kaput i dobijete brojčanu kartu. Karta ne sadrži vaš kaput, samo broj. Svaki put kada se vratite na šalter, pokažete kartu, a službenik zna koji kaput je vaš.
Kolačić sesije radi isto. Kada se prijavite, server čuva vaše podatke sa svoje strane i daje vašem pregledaču kartu, dugi slučajni ID. Vaš pregledač pokazuje tu kartu uz svaki zahtev, a server na osnovu nje pronalazi ko ste. Ko god iskopira kartu, može da podigne kaput, pa zato kolačići za prijavu moraju biti zaštićeni.
Kako kolačić zaista radi
- Posetite sajt. Odgovor servera uključuje zaglavlje poput
Set-Cookie: session_id=8f3k...; HttpOnly; Secure; SameSite=Lax. - Vaš pregledač ga čuva, vezanog za domen tog sajta.
- Pri svakom sledećem zahtevu ka istom sajtu, pregledač automatski dodaje
Cookie: session_id=8f3k.... - Server ga čita i zna da ste to vi.
JavaScript stranice takođe može da pravi kolačiće, ali najvažnije, one za prijavu, treba da postavlja server i da ih sakrije od JavaScript-a.
Vrste kolačića
| Vrsta | Šta znači | Primer |
|---|---|---|
| Kolačić sesije | Nema datum isteka; briše se kada se sesija pregledača završi | Kratak korak u plaćanju |
| Trajni kolačić | Ima datum isteka (Expires ili Max-Age) i preživljava ponovno pokretanje | „Zapamti me 30 dana“ |
| Prve strane | Postavlja sajt čiju adresu vidite u adresnoj traci | Vaša prijava na tom sajtu |
| Treće strane | Postavlja drugi domen ugrađen na stranicu | ID za praćenje mreže oglasa |
| Striktno neophodni | Potrebni za uslugu koju je korisnik tražio | Sesija prijave, korpa za kupovinu |
| Neobavezni | Korisni za vlasnika sajta, ali nisu nužni | Analitika, oglašavanje, A/B testiranje |
Pregledači su postepeno ograničavali kolačiće trećih strana jer se koriste za praćenje ljudi između sajtova. Nekoliko velikih pregledača sada mnoge od njih blokira podrazumevano, a detalji se stalno menjaju, pa ne gradite ništa važno na kolačićima trećih strana.
Primer: mala onlajn prodavnica
Recimo da ste napravili prodavnicu koja prodaje ručno rađene sveće. Evo kolačića koje bi razumna verzija postavljala i zašto.
session — postavlja se kada vlasnik ili kupac se prijavi. Sadrži samo slučajni ID; server čuva prave podatke sesije. Podešavanja: HttpOnly (JavaScript stranice ga ne može čitati), Secure (šalje se samo preko HTTPS-a), SameSite=Lax (ne šalje se uz većinu zahteva koje pokreću drugi sajtovi). Striktno neophodan.
cart_id — omogućava posetiocu koji nije prijavljen da zadrži korpu. Pokazuje na korpu sačuvanu u bazi podataka. Striktno neophodan, jer je posetilac tražio da doda stvari u korpu.
theme — pamti tamni režim. Ovo bi moglo biti kolačić, ali nikada ne mora da stigne do servera, pa je localStorage jednostavniji.
Kolačići analitike — dodaju se ako instalirate alat za analitiku. Oni nisu neophodni. U EU i Velikoj Britaniji obično zahtevaju saglasnost pre postavljanja, pa skripta analitike treba da čeka dok posetilac ne klikne „Prihvatam“.
Primetite šta prodavnica ne čuva u kolačićima: ime kupca, adresu ili podatke o kartici. Kolačići putuju uz svaki zahtev i žive na uređaju korisnika, pa treba da sadrže ID-jeve, a ne lične podatke.
Česti pojmovi objašnjeni
| Pojam | Šta znači |
|---|---|
| Kolačić | Mali par ime–vrednost koji pregledač čuva i šalje nazad sajtu. |
Set-Cookie | Zaglavlje odgovora kojim server pravi ili ažurira kolačić. |
| Sesija | Serverov zapis o prijavljenom korisniku, povezan sa ID-jem kolačića. |
HttpOnly | Sprečava da JavaScript stranice č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 zahteve sa drugih sajtova (Strict, Lax ili None). |
Expires / Max-Age | Kada kolačić treba da se obriše. |
| Domain / Path | Koje adrese na sajtu primaju kolačić. |
| localStorage | Skladište u pregledaču koje kod stranice može da čita, ali se automatski ne šalje serveru. |
| XSS | Cross-site scripting: napadačeva skripta pokrenuta na vašoj stranici, koja može pokušati da ukrade podatke. |
| CSRF | Cross-site request forgery: drugi sajt navodi pregledač da pošalje zahtev sa vašim kolačićima. |
| Saglasnost za kolačiće | Traženje dozvole posetilaca pre postavljanja neobaveznih kolačića. |
Česte greške i zablude
- „Kolačići su virusi.“ Oni su običan tekst. Ne mogu da pokreću kod na vašem računaru.
- Stavljanje osetljivih podataka u kolačiće. Čuvajte slučajni ID, a detalje držite na serveru.
- Tokeni za prijavu u localStorage-u. Svaka skripta koja radi na stranici može da ih pročita, uključujući ubačenu.
HttpOnlykolačić JavaScript stranice uopšte ne može da čita. - Nedostajuće
SecureiHttpOnlyoznake. Ove dve oznake su jeftine i zatvaraju česte rupe. - Pretpostavka da baner pokriva sve. Baner koji učitava analitiku pre nego što iko klikne „Prihvatam“ ne obavlja svoj posao.
- Zaboravljena odjava. Odjava treba da obriše kolačić i okonča sesiju na serveru, tako da iskopirani kolačić prestane da radi.
- „Ako ne koristim kolačiće, pravila o privatnosti se ne primenjuju.“ Pravila kao što je GDPR pokrivaju lične podatke gde god da su sačuvani: localStorage, otisci uređaja i serverski logovi uključeni.
Šta tražiti od AI alata za pravljenje
- „Navedi svaki kolačić koji aplikacija postavlja, čemu služi, koliko traje i da li je striktno neophodan.“
- „Za sesiju prijave koristi
HttpOnly,Secure,SameSite=Laxkolačić. Ne stavljaj tokene za autentifikaciju u localStorage.“ - „Neka kolačić sadrži samo slučajni 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 posetilac ne prihvati, i zapamti njegov izbor.“
- „Dodaj kratak odeljak o kolačićima u politiku privatnosti koji odgovara gornjem spisku.“
Za deo 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 obezbeđuje ugrađenu prijavu za korisnike vaše aplikacije, pa kolačići koje vaša aplikacija postavlja dolaze iz njenog sopstvenog koda i alata koje dodate. Na primer, kolačić sesije iz pristupa autentifikaciji koji izaberete. Tražite od agenta u chatu da ih navede, pooštri njihova podešavanja ili doda baner za saglasnost, pa proverite rezultat u živom pregledu pre objavljivanja. Recept u dokumentaciji o dodavanju prijave u vašu aplikaciju dobar je polazni upit, a bezbednost za aplikacije koje pravite objašnjava kako da ključevi i tajne ostanu van pregledača.
Pitanja
Šta je kolačić na sajtu?
Kolačić je mali tekstualni zapis koji sajt traži od vašeg pregledača da sačuva. Pregledač ga šalje nazad uz svaki sledeći zahtev ka tom sajtu, što omogućava sajtu da zapamti stvari kao što su to da li ste prijavljeni ili šta se nalazi u vašoj korpi.
Da li su kolačići opasni?
Kolačići su samo podaci, a ne programi, pa ne mogu da izvršavaju kod ili zaraze računar. Brige se odnose na privatnost, kada kolačići trećih strana prate vas na više sajtova, i na bezbednost, kada se ukrade kolačić za prijavu i iskoristi da se neko predstavi kao vi.
Koja je razlika između kolačića prve i treće strane?
Kolačić prve strane postavlja sajt čiju adresu vidite u adresnoj traci, na primer kolačić za prijavu. Kolačić treće strane postavlja drugi domen ugrađen na stranicu, na primer mreža oglasa, i često se koristi da vas prati kroz mnoge sajtove.
Treba li mi baner za kolačiće?
Zavisi od toga gde su vaši korisnici i koje kolačiće koristite. U EU i Velikoj Britaniji, kolačići koji nisu neophodni, poput analitike ili oglašavanja, obično zahtevaju prethodnu saglasnost, dok kolačići striktno potrebni za uslugu, kao što je sesija prijave, obično ne. Proverite pravila koja se primenjuju na vas.
Koja je razlika između kolačića i localStorage-a?
Oba čuvaju podatke u pregledaču. Kolačići se automatski šalju serveru uz svaki zahtev, što odgovara prijavama. localStorage ostaje u pregledaču i čita ga samo kod same stranice, što odgovara podešavanjima poput teme.