Bosh sahifa Wiki Session ID

Session ID

Session ID — serverdagi muayyan foydalanuvchi sessiyasini aniqlash uchun beriladigan noyob va taxmin qilib bo‘lmaydigan identifikator. HTTP protokoli so‘rovlar orasida holatni o‘z-o‘zidan saqlamagani sababli, veb-ilova login natijasi, savat tarkibi yoki vaqtinchalik sozlamalarni keyingi so‘rovlar bilan bog‘lash uchun sessiya mexanizmidan foydalanadi. Session ID odatda ma’lumotning o‘zi emas, server tomondagi sessiya yozuviga murojaat qiluvchi kalitdir.

Yaratish va uzatish

Foydalanuvchi muvaffaqiyatli autentifikatsiyadan o‘tganda server kriptografik xavfsiz tasodifiy generator yordamida identifikator yaratadi. U yetarli entropiyaga ega bo‘lishi va vaqt, foydalanuvchi nomi yoki ketma-ket son kabi taxmin qilinadigan ma’lumotdan tuzilmasligi kerak. Server identifikatorni sessiya yozuvi bilan bog‘laydi va brauzerga ko‘pincha Set-Cookie sarlavhasi orqali yuboradi:

Set-Cookie: sid=K7x...pQ; Path=/; Secure; HttpOnly; SameSite=Lax

Keyingi so‘rovlarda brauzer shu cookie qiymatini qaytaradi. Server Session ID bo‘yicha yozuvni topib, foydalanuvchi identifikatori, rollar, yaratilgan vaqt va oxirgi faollik kabi holatni oladi. Identifikatorni URL parametrida yuborish tavsiya etilmaydi: u brauzer tarixi, server jurnali, referrer sarlavhasi yoki ulashilgan havolaga tushib qolishi mumkin.

Sessiya yozuvining tarkibi

Server-side sessiya operativ xotira, ma’lumotlar bazasi yoki Redis singari umumiy keshda saqlanishi mumkin. Bitta serverli dasturda lokal xotira sodda, ammo jarayon qayta ishga tushsa sessiyalar yo‘qoladi. Bir nechta backend ishlatilganda umumiy sessiya ombori barcha nusxalarga bir xil holatni ko‘rish imkonini beradi. Sticky session lokal saqlash bilan ishlashi mumkin, lekin muayyan tugunga bog‘liqlikni kuchaytiradi.

Sessiya yozuviga maxfiy ma’lumotni keragidan ortiq joylash uning sizib chiqish ta’sirini oshiradi. Parol, to‘liq bank rekviziti yoki boshqa qayta foydalaniladigan sirlar sessiyada saqlanmaydi. Foydalanuvchining ruxsatlari sessiyaga nusxalansa, rol o‘zgarganda eski sessiyadagi vakolatni yangilash yoki sessiyani bekor qilish mexanizmi zarur bo‘ladi.

Asosiy hujumlar

Session hijacking holatida hujumchi haqiqiy identifikatorni qo‘lga kiritib, foydalanuvchi nomidan so‘rov yuboradi. Qiymat XSS, shifrlanmagan aloqa, zararli kengaytma, jurnal yoki noto‘g‘ri cookie sozlamasi orqali sizishi mumkin. Secure atributi cookie faqat HTTPS orqali yuborilishini, HttpOnly esa oddiy JavaScript orqali o‘qilmasligini ta’minlaydi. SameSite ayrim cross-site so‘rovlarda cookie yuborilishini cheklab, CSRF xavfini kamaytiradi, lekin barcha hujumlarni yakka o‘zi bartaraf etmaydi.

Session fixation hujumida tajovuzkor jabrlanuvchiga oldindan ma’lum identifikatorni qabul qildiradi va login tugagach o‘sha qiymatdan foydalanadi. Bunga qarshi server autentifikatsiya darajasi o‘zgarganda, xususan login yoki imtiyoz oshirilganda yangi Session ID yaratadi va eskisini bekor qiladi. Identifikatorni faqat IP manzilga qattiq bog‘lash mobil tarmoq yoki proksi sabab qonuniy sessiyani buzishi mumkin; bunday belgilar ko‘proq risk signali sifatida ishlatiladi.

Amal qilish muddati va bekor qilish

Idle timeout sessiya ma’lum vaqt faol bo‘lmasa tugaydi, absolute timeout esa faollikdan qat’i nazar maksimal umrni belgilaydi. Muhim tizimlarda xavfli amal oldidan foydalanuvchidan parol yoki qo‘shimcha faktor bilan qayta autentifikatsiya talab qilinishi mumkin. Logout paytida faqat brauzer cookie faylini o‘chirish yetarli emas: server sessiya yozuvini ham yaroqsiz qilishi kerak.

Parol almashtirish, hisob bloklanishi yoki shubhali faollik aniqlanishi barcha faol sessiyalarni bekor qilishga sabab bo‘lishi mumkin. Sessiya identifikatori to‘liq ko‘rinishda jurnallarga yozilmaydi; kuzatuv uchun qaytarib bo‘lmaydigan qisqa xesh yoki alohida audit identifikatori ishlatiladi. Bu diagnostika imkonini saqlagan holda jurnaldan sessiyani egallash xavfini kamaytiradi.

Token bilan munosabati

Session ID odatda ma’nosiz opaque qiymat bo‘lib, vakolat haqidagi ma’lumot serverda turadi. JWT kabi self-contained token esa da’volarni o‘z ichida olib yurishi va imzo bilan tekshirilishi mumkin. Birinchi modelda sessiyani darhol bekor qilish osonroq, ammo markaziy ombor talab qilishi mumkin. Ikkinchi model taqsimlangan tekshiruvni soddalashtiradi, biroq muddat tugashidan oldin bekor qilish alohida mexanizmni talab etadi. Har ikkala qiymat ham qo‘lga kiritilganda vakolat beruvchi bearer credential bo‘lishi mumkin va maxfiy saqlanishi kerak.

Bog‘liq tushunchalar

Session, Cookie, Authentication, Session hijacking, Session fixation, CSRF, Access token