Cookie — web brauzerda saqlanadigan kichik ma’lumot bo‘lagi. Cookie sayt yoki web ilova tomonidan foydalanuvchi qurilmasiga yoziladi va keyingi so‘rovlarda serverga qayta yuborilishi mumkin.
Cookie foydalanuvchi login holatini saqlash, session ID uzatish, til tanlovi, tema sozlamasi, savatcha ma’lumotlari va tracking kabi vazifalarda ishlatiladi.
Vazifasi
Cookie web ilovaga foydalanuvchi yoki brauzer holatini eslab qolishga yordam beradi.
Cookie quyidagi vazifalarda ishlatiladi:
- session ID saqlash;
- login holatini davom ettirish;
- “remember me” funksiyasini ishlatish;
- til tanlovini saqlash;
- dark mode yoki light mode sozlamasini saqlash;
- savatcha ma’lumotlarini saqlash;
- CSRF token bilan ishlash;
- analytics va tracking;
- reklama va marketing identifikatorlari;
- foydalanuvchi preferensiyalarini saqlash.
Masalan, foydalanuvchi saytga login qilganda server session ID yaratadi va uni cookie orqali brauzerga yuboradi.
Cookie qanday ishlaydi?
Server HTTP javobida brauzerga cookie yuboradi. Brauzer cookie’ni saqlaydi va keyingi mos so‘rovlarda uni serverga qayta yuboradi.
Oddiy jarayon:
- foydalanuvchi saytga kiradi;
- server HTTP response ichida cookie yuboradi;
- brauzer cookie’ni saqlaydi;
- foydalanuvchi shu saytga yana so‘rov yuboradi;
- brauzer cookie’ni request bilan birga serverga yuboradi;
- server cookie orqali foydalanuvchi yoki sessionni aniqlaydi.
Cookie domain, path, muddat va xavfsizlik flaglari asosida boshqariladi.
HTTP cookie
HTTP cookie server va brauzer o‘rtasida HTTP headerlar orqali almashiladi.
Cookie yuborishda server odatda Set-Cookie headeridan foydalanadi.
Misol:
Set-Cookie: sessionid=abc123; Path=/; HttpOnly; Secure
Keyingi requestlarda brauzer cookie’ni Cookie headeri orqali yuboradi.
Misol:
Cookie: sessionid=abc123
Bu jarayon avtomatik bajariladi.
Cookie tarkibi
Cookie odatda nom va qiymatdan iborat bo‘ladi. Bundan tashqari qo‘shimcha atributlar ham bo‘lishi mumkin.
Cookie tarkibida quyidagilar uchraydi:
- cookie nomi;
- cookie qiymati;
- domain;
- path;
- expiration muddati;
- Secure flag;
- HttpOnly flag;
- SameSite sozlamasi.
Masalan:
theme=dark
Bu yerda theme cookie nomi, dark esa uning qiymati hisoblanadi.
Name va value
Cookie asosiy ko‘rinishda name=value shaklida yoziladi.
Misollar:
sessionid=abc123;theme=dark;language=uz;cart_id=789;remember=true.
Cookie qiymati kichik matnli ma’lumot bo‘ladi. Katta hajmdagi ma’lumotlarni cookie’da saqlash odatda ishlatilmaydi.
Domain
Domain cookie qaysi domen uchun amal qilishini bildiradi.
Masalan:
Domain=example.com
Bu cookie example.com domeni va ayrim holatlarda uning subdomainlari uchun yuborilishi mumkin.
Domain noto‘g‘ri sozlansa, cookie kerakli so‘rovlarda yuborilmasligi yoki keraksiz subdomainlarga ham yuborilishi mumkin.
Path
Path cookie qaysi URL yo‘llari uchun yuborilishini bildiradi.
Masalan:
Path=/admin
Bu cookie faqat /admin va uning ichki yo‘llariga yuboriladi.
Keng ishlatiladigan qiymat:
Path=/
Bu cookie saytning barcha yo‘llari uchun amal qilishini bildiradi.
Expiration
Cookie muddati ikki asosiy usulda belgilanadi.
- Expires — cookie qaysi aniq vaqtda tugashini bildiradi;
- Max-Age — cookie necha soniyadan keyin tugashini bildiradi.
Agar muddat belgilanmasa, cookie odatda session cookie sifatida ishlaydi va brauzer yopilganda o‘chishi mumkin.
Session cookie
Session cookie — brauzer sessiyasi davomida saqlanadigan cookie. U odatda aniq uzoq muddatga ega bo‘lmaydi.
Session cookie quyidagi holatlarda ishlatiladi:
Brauzer yopilganda session cookie o‘chishi mumkin.
Persistent cookie
Persistent cookie — belgilangan muddatgacha saqlanib turadigan cookie. U brauzer yopilgandan keyin ham qolishi mumkin.
Persistent cookie quyidagilar uchun ishlatiladi:
- “remember me” funksiyasi;
- til tanlovi;
- tema sozlamasi;
- marketing identifikatori;
- uzoq muddatli foydalanuvchi preferensiyasi.
Persistent cookie expiration yoki max-age qiymatiga ega bo‘ladi.
Secure flag
Secure flag cookie faqat HTTPS orqali yuborilishini bildiradi. Bu flag cookie HTTP orqali ochiqroq uzatilishining oldini oladi.
Secure flag quyidagi cookie’larda muhim:
- session cookie;
- authentication token;
- refresh token;
- admin panel cookie’si;
- maxfiy qiymatga ega cookie.
HTTPS ishlatiladigan web ilovalarda authentication cookie’lari ko‘pincha Secure flag bilan sozlanadi.
HttpOnly flag
HttpOnly flag cookie’ni JavaScript orqali o‘qib bo‘lmasligini bildiradi. Bu XSS hujumlarida cookie qiymatini o‘g‘irlash xavfini kamaytiradi.
HttpOnly cookie:
- JavaScript
document.cookieorqali o‘qilmaydi; - brauzer tomonidan serverga yuboriladi;
- session ID yoki token saqlashda ishlatiladi;
- client scriptlardan yashiriladi.
Authentication session cookie’lari ko‘pincha HttpOnly qilib sozlanadi.
SameSite
SameSite cookie cross-site so‘rovlarda qanday yuborilishini boshqaradigan atribut.
SameSite qiymatlari:
- Strict — cookie faqat shu sayt ichidagi so‘rovlarda yuboriladi;
- Lax — asosiy navigatsiya holatlarida cheklangan tarzda yuboriladi;
- None — cross-site so‘rovlarda ham yuborilishi mumkin, odatda Secure bilan birga ishlatiladi.
SameSite CSRF hujumlari xavfini kamaytirishda muhim rol o‘ynaydi.
Cookie va session
Session tizimlarida cookie ko‘pincha session ID saqlash uchun ishlatiladi. Server session ma’lumotlarini o‘zida saqlaydi, brauzerda esa faqat session ID bo‘ladi.
Jarayon:
- server session yaratadi;
- session ID cookie’ga yoziladi;
- brauzer keyingi requestlarda cookie’ni yuboradi;
- server session ID orqali foydalanuvchini topadi;
- session muddati tugaganda cookie yoki server session yaroqsiz bo‘ladi.
Cookie sessionning brauzer tomondagi identifikatori sifatida ishlaydi.
Cookie va token
Cookie token saqlash uchun ham ishlatilishi mumkin. Masalan, access token yoki refresh token cookie’da saqlanishi mumkin.
Token cookie’da saqlanganda quyidagilar muhim:
Cookie ichida token saqlash SPA, server-rendered ilova va API authentication tizimlarida uchraydi.
Cookie va localStorage farqi
Cookie va localStorage ikkalasi ham brauzerda ma’lumot saqlaydi, lekin ishlash usuli farq qiladi.
- Cookie serverga avtomatik yuborilishi mumkin;
- localStorage serverga avtomatik yuborilmaydi;
- Cookie hajmi kichikroq bo‘ladi;
- localStorage ko‘proq ma’lumot saqlashi mumkin;
- Cookie HttpOnly va Secure flaglarga ega bo‘lishi mumkin;
- localStorage JavaScript orqali o‘qiladi va yoziladi.
Authentication ma’lumotlarini saqlashda cookie va localStorage tanlovi xavfsizlik modeliga bog‘liq bo‘ladi.
First-party cookie
First-party cookie — foydalanuvchi bevosita ochgan sayt tomonidan o‘rnatilgan cookie.
Masalan, foydalanuvchi example.com saytiga kirsa va shu sayt cookie o‘rnatsa, bu first-party cookie hisoblanadi.
First-party cookie quyidagilar uchun ishlatiladi:
Third-party cookie
Third-party cookie — foydalanuvchi ochgan sayt emas, balki boshqa domen tomonidan o‘rnatilgan cookie.
Third-party cookie quyidagi joylarda uchrashi mumkin:
- reklama tarmoqlari;
- tracking xizmatlari;
- analytics platformalari;
- embedded iframe;
- tashqi widgetlar;
- social media pluginlar.
Third-party cookie maxfiylik va tracking bilan bog‘liq muhokamalarda ko‘p uchraydi.
Cookie consent
Cookie consent — sayt foydalanuvchidan cookie ishlatish bo‘yicha rozilik oladigan mexanizm. Bu asosan maxfiylik siyosati va qonuniy talablar bilan bog‘liq.
Cookie consent oynasida quyidagilar bo‘lishi mumkin:
- zarur cookie’lar;
- analytics cookie’lar;
- marketing cookie’lar;
- personalizatsiya cookie’lari;
- ruxsat berish yoki rad etish tugmalari;
- cookie siyosati havolasi.
Zarur cookie’lar sayt ishlashi uchun kerak bo‘lishi mumkin, marketing cookie’lar esa alohida rozilik talab qilishi mumkin.
Necessary cookie
Necessary cookie — saytning asosiy ishlashi uchun kerak bo‘ladigan cookie.
Necessary cookie misollari:
- session ID;
- CSRF token;
- savatcha identifikatori;
- login holati;
- xavfsizlik cookie’lari;
- cookie consent holati.
Bunday cookie’lar saytning texnik ishlashi bilan bog‘liq bo‘ladi.
Analytics cookie
Analytics cookie — foydalanuvchi sayt bilan qanday ishlayotganini tahlil qilish uchun ishlatiladigan cookie.
Analytics cookie quyidagi ma’lumotlarga yordam beradi:
- tashriflar soni;
- sahifa ko‘rishlar;
- foydalanuvchi oqimi;
- trafik manbasi;
- qurilma turi;
- sessiya davomiyligi.
Analytics cookie sayt ishlashini o‘lchash va statistikani tushunishda ishlatiladi.
Marketing cookie
Marketing cookie — reklama va foydalanuvchi qiziqishlarini kuzatish uchun ishlatiladigan cookie.
Marketing cookie quyidagi holatlarda ishlatiladi:
- reklamani moslashtirish;
- retargeting;
- kampaniya samaradorligini o‘lchash;
- foydalanuvchi segmentatsiyasi;
- tashqi reklama tarmoqlari bilan ishlash.
Marketing cookie maxfiylik siyosati va foydalanuvchi roziligi bilan bog‘liq bo‘lishi mumkin.
CSRF token cookie
CSRF token cookie session-based authentication tizimlarida CSRF hujumlaridan himoyalanish uchun ishlatilishi mumkin.
CSRF cookie jarayonida:
- server token yaratadi;
- token cookie yoki sahifa ichida beriladi;
- frontend muhim so‘rovda tokenni yuboradi;
- server tokenni tekshiradi;
- noto‘g‘ri tokenli so‘rov rad etiladi.
Bu mexanizm foydalanuvchi nomidan ruxsatsiz so‘rov yuborish xavfini kamaytiradi.
Cookie va CORS
Cookie cross-origin API so‘rovlarda ishlatilganda CORS sozlamalari muhim bo‘ladi. Brauzer cookie’ni boshqa origin so‘rovlariga har doim ham yubormaydi.
Cookie bilan CORS ishlaganda quyidagilar muhim:
credentialssozlamasi;Access-Control-Allow-Credentials;Access-Control-Allow-Origin;- SameSite qiymati;
- Secure flag;
- domen va subdomain mosligi.
Masalan, frontend app.example.com, API esa api.example.com da bo‘lsa, cookie sozlamalari to‘g‘ri bo‘lishi kerak.
Cookie va XSS
XSS hujumi sahifada zararli JavaScript ishlashiga olib kelishi mumkin. Agar cookie HttpOnly bo‘lmasa, zararli script cookie qiymatini o‘qishga urinishi mumkin.
XSS bilan bog‘liq cookie xavflari:
- session cookie o‘g‘irlanishi;
- token o‘qilishi;
- foydalanuvchi nomidan so‘rov yuborilishi;
- authentication holatidan foydalanish;
- cookie orqali identifikator olish.
HttpOnly flag cookie o‘qilishini cheklaydi, lekin XSS’ning barcha xavflarini to‘liq bartaraf qilmaydi.
Cookie va CSRF
Cookie serverga avtomatik yuborilgani uchun session-based authentication tizimlarida CSRF xavfi bo‘lishi mumkin.
CSRF bilan bog‘liq himoya usullari:
- SameSite cookie;
- CSRF token;
- Origin header tekshiruvi;
- Referer tekshiruvi;
- muhim amallar uchun qayta tasdiqlash.
Cookie asosidagi login tizimlarida CSRF himoyasi muhim hisoblanadi.
Cookie o‘chirish
Cookie server yoki browser orqali o‘chirilishi mumkin. Server cookie’ni o‘chirish uchun uning muddatini o‘tgan vaqtga sozlab yuboradi.
Cookie o‘chiriladigan holatlar:
- logout;
- session tugashi;
- foydalanuvchi cookie’ni rad etishi;
- browser ma’lumotlarini tozalash;
- account xavfsizlik hodisasi;
- cookie consent o‘zgarishi.
Logout jarayonida session cookie odatda o‘chiriladi yoki serverdagi session yaroqsiz qilinadi.
Cookie hajmi
Cookie kichik hajmdagi ma’lumotlar uchun mo‘ljallangan. Juda katta ma’lumot cookie’da saqlansa, har bir request hajmi oshadi.
Cookie hajmiga ta’sir qiladigan holatlar:
- token uzunligi;
- ko‘p cookie ishlatish;
- tracking qiymatlari;
- murakkab sozlama ma’lumotlari;
- noto‘g‘ri saqlangan JSON.
Cookie har bir mos HTTP so‘rov bilan yuborilgani uchun unda katta ma’lumot saqlash web performancega ta’sir qilishi mumkin.
Browserda cookie
Foydalanuvchi browser sozlamalari yoki developer tools orqali cookie’larni ko‘rishi, o‘chirishi yoki bloklashi mumkin.
Browserda cookie bilan bog‘liq imkoniyatlar:
- sayt cookie’larini ko‘rish;
- cookie qiymatlarini o‘chirish;
- third-party cookie’larni bloklash;
- barcha browsing data’ni tozalash;
- cookie permission sozlash;
- developer tools orqali cookie tahlil qilish.
Brauzerlar cookie maxfiyligi va xavfsizlik sozlamalarini doimiy rivojlantirib boradi.
Frontenddagi o‘rni
Frontend cookie orqali foydalanuvchi holati, sozlamalari yoki authentication jarayonlari bilan ishlashi mumkin.
Frontendda cookie quyidagi joylarda uchraydi:
- login holati;
- til tanlovi;
- tema sozlamasi;
- cookie consent;
- savatcha identifikatori;
- CSRF token;
- API so‘rovlarda credential yuborish.
JavaScript orqali faqat HttpOnly bo‘lmagan cookie’larni o‘qish va yozish mumkin.
Backenddagi o‘rni
Backend cookie yaratadi, o‘qiydi, yangilaydi va o‘chiradi. Authentication va session tizimlarida backend cookie bilan bevosita ishlaydi.
Backend cookie orqali quyidagilarni bajaradi:
- session ID yuborish;
- cookie flaglarini sozlash;
- CSRF token berish;
- logoutda cookie o‘chirish;
- cookie domain va path belgilash;
- cookie muddati boshqarish;
- foydalanuvchi requestini session bilan bog‘lash.
Backend cookie xavfsizligi uchun Secure, HttpOnly va SameSite sozlamalarini to‘g‘ri qo‘llaydi.
Dasturlashdagi o‘rni
Cookie web dasturlashda foydalanuvchi holatini saqlash, session boshqarish va brauzer-server aloqasini davomiy qilish uchun ishlatiladigan muhim mexanizmdir.
Cookie quyidagi loyihalarda uchraydi:
- web saytlar;
- admin panellar;
- internet do‘konlar;
- SaaS platformalar;
- CRM tizimlar;
- blog platformalar;
- analytics tizimlari;
- authentication tizimlari;
- server-rendered ilovalar;
- frontend va backend API aloqalari.
Cookie HTTP asosidagi web tizimlarda foydalanuvchi, session va sozlamalarni brauzer bilan bog‘lash uchun ishlatiladi.
Bog‘liq tushunchalar
Session, Authentication, Authorization, CSRF, XSS, Browser, HTTP, HTTPS, Token, JWT, Frontend, Backend