Cookieâlar toâgâridan-toâgâri brauzerde saqlanadigan kichik maâlumot satrâlaridir. Ular RFC 6265 spetsifikatsiyasi bilan belgilangan HTTP protokolining bir qismidir.
Cookieâlar odatda veb-server tomonidan Set-Cookie HTTP-header javobidan foydalanib oârnatiladi. Keyin brauzer ularni bir xil domanga deyarli har bir soârovga Cookie HTTP-header yordamida avtomatik qoâshadi.
Eng keng tarqalgan foydalanish holatlaridan biri autentifikatsiya:
- Tizimga kirishda server javobda noyob âsessiya identifikatoriâ bilan cookie oârnatish uchun
Set-CookieHTTP-headerâidan foydalanadi. - Keyingi safar bir xil domanga soârov yuborilganda, brauzer
CookieHTTP-header yordamida cookieâni tarmoq orqali yuboradi. - Shuning uchun server kim soârov qilganini biladi.
Biz cookieâlarga brauzerdan ham document.cookie xususiyati orqali kira olamiz.
Cookieâlar va ularning opsiyalari haqida koâplab murakkab narsalar bor. Ushbu bobda biz ularni batafsil koârib chiqamiz.
document.cookie dan oâqish
Sizning brauzeringiz ushbu saytdan biron cookieâlarni saqlaydimi? Keling, koâraylik:
// javascript.info da biz statistika uchun Google Analytics ishlatamiz,
// shuning uchun ba'zi cookie'lar bo'lishi kerak
alert( document.cookie ); // cookie1=value1; cookie2=value2;...
document.cookie ning qiymati ; bilan ajratilgan name=value juftliklaridan iborat. Har biri alohida cookie.
Maâlum bir cookieâni topish uchun document.cookie ni ; boâyicha ajratib, keyin toâgâri nomni topishimiz mumkin. Buning uchun regular expression yoki array funktsiyalaridan foydalanishimiz mumkin.
Buni oâquvchi uchun mashq sifatida qoldiramiz. Bundan tashqari, bob oxirida cookieâlarni boshqarish uchun yordamchi funktsiyalarni topasiz.
document.cookie ga yozish
Biz document.cookie ga yoza olamiz. Lekin bu maâlumot xususiyati emas, bu accessor (getter/setter). Unga tayinlash maxsus ravishda qaraladi.
document.cookie ga yozish operatsiyasi faqat unda eslatilgan cookieâlarni yangilaydi, lekin boshqa cookieâlarga tegmaydi.
Masalan, bu chaqiruv user nomi va John qiymati bilan cookie oârnatadi:
document.cookie = "user=John"; // faqat 'user' nomli cookie'ni yangilash
alert(document.cookie); // barcha cookie'larni ko'rsatish
Agar siz buni ishga tushirsangiz, ehtimol bir nechta cookieâlarni koârasiz. Buning sababi document.cookie= operatsiyasi barcha cookieâlarni qayta yozmaydi. U faqat eslatilgan user cookieâsini oârnatadi.
Texnik jihatdan, nom va qiymat har qanday belgilarga ega boâlishi mumkin. Toâgâri formatni saqlash uchun ular oârnatilgan encodeURIComponent funktsiyasi yordamida kodlanishi kerak:
// maxsus belgilar (bo'shliqlar), kodlash kerak
let name = "mening ismim";
let value = "John Smith"
// cookie'ni my%20name=John%20Smith sifatida kodlaydi
document.cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value);
alert(document.cookie); // ...; my%20name=John%20Smith
Bir nechta cheklovlar bor:
encodeURIComponentdan keyinginame=valuejuftligi 4KB dan oshmasligi kerak. Shuning uchun cookieâda juda katta narsalarni saqlay olmaymiz.- Har bir domen uchun cookieâlarning umumiy soni taxminan 20+ ga cheklangan, aniq chegara brauzerga bogâliq.
Cookieâlar bir nechta opsiyalarga ega, ularning koâpchiligi muhim va oârnatilishi kerak.
Opsiyalar key=value dan keyin, ; bilan ajratilgan holda roâyxatlanadi:
document.cookie = "user=John; path=/; expires=Tue, 19 Jan 2038 03:14:07 GMT"
path
path=/mypath
URL yoâl prefiksi mutlaq boâlishi kerak. Bu cookieâni oâsha yoâl ostidagi sahifalar uchun kirish mumkin qiladi. Sukut boâyicha, bu joriy yoâl.
Agar cookie path=/admin bilan oârnatilgan boâlsa, u /admin va /admin/something sahifalarida koârinadi, lekin /home yoki /adminpage da emas.
Odatda biz path ni ildizga oârnatishimiz kerak: path=/ cookieâni barcha veb-sayt sahifalaridan kirish mumkin qilish uchun.
domain
domain=site.com
Domen cookie qayerda kirish mumkinligini belgilaydi. Amalda cheklovlar bor. Biz har qanday domenni oârnata olmaymiz.
Sukut boâyicha, cookie faqat uni oârnatgan domenda kirish mumkin. Shunday qilib, agar cookie site.com tomonidan oârnatilgan boâlsa, biz uni other.com da olmaymiz.
â¦Lekin yanada murakkabi, biz cookieâni subdomen forum.site.com da ham olmaymiz!
// site.com da
document.cookie = "user=John"
// forum.site.com da
alert(document.cookie); // user yo'q
Cookieâni boshqa 2-darajali domendan kirish mumkin qilishning yoâli yoâq, shuning uchun other.com hech qachon site.com da oârnatilgan cookieâni olmaydi.
Bu xavfsizlik cheklovi, bizga cookieâlarda maxfiy maâlumotlarni saqlash imkonini beradi, bu faqat bitta saytda mavjud boâlishi kerak.
â¦Lekin agar biz forum.site.com kabi subdomenlarning cookie olishiga ruxsat bermoqchi boâlsak, bu mumkin. site.com da cookie oârnatishda domain opsiyasini ildiz domenga aniq oârnatishimiz kerak: domain=site.com:
// site.com da
// cookie'ni har qanday subdomen *.site.com da kirish mumkin qilish:
document.cookie = "user=John; domain=site.com"
// keyinroq
// forum.site.com da
alert(document.cookie); // user=John cookie'si mavjud
Tarixiy sabablarga koâra, domain=.site.com (site.com dan oldingi nuqta) ham xuddi shu tarzda ishlaydi, subdomenlardan cookieâga kirishga imkon beradi. Bu eski yozuv va agar juda eski brauzerlarni qoâllab-quvvatlashimiz kerak boâlsa, ishlatilishi kerak.
Shunday qilib, domain opsiyasi cookieâni subdomenlardan kirish mumkin qilish imkonini beradi.
expires, max-age
Sukut boâyicha, agar cookieâda ushbu opsiyalardan biri boâlmasa, brauzer yopilganda u yoâqoladi. Bunday cookieâlar âsessiya cookieâlariâ deb ataladi.
Cookieâlarning brauzer yopilishidan omon qolishi uchun expires yoki max-age opsiyasini oârnatishimiz mumkin.
expires=Tue, 19 Jan 2038 03:14:07 GMT
Cookie amal qilish muddati brauzer uni avtomatik oâchiradigan vaqtni belgilaydi.
Sana aynan shu formatda, GMT vaqt zonasida boâlishi kerak. Uni olish uchun date.toUTCString dan foydalanishimiz mumkin. Masalan, cookieâni 1 kun ichida tugashiga oârnatishimiz mumkin:
// hozirgidan +1 kun
let date = new Date(Date.now() + 86400e3);
date = date.toUTCString();
document.cookie = "user=John; expires=" + date;
Agar expires ni oâtmishdagi sanaga oârnatsak, cookie oâchiriladi.
max-age=3600
expires ga alternativ boâlib, cookieâning joriy momentdan boshlab soniyalarda amal qilish muddatini belgilaydi.
Agar nol yoki manfiy qiymatga oârnatilsa, cookie oâchiriladi:
// cookie hozirgidan +1 soat ichida o'ladi
document.cookie = "user=John; max-age=3600";
// cookie'ni o'chirish (hoziroq tugashini)
document.cookie = "user=John; max-age=0";
secure
secure
Cookie faqat HTTPS orqali uzatilishi kerak.
Sukut boâyicha, agar biz http://site.com da cookie oârnatsak, u https://site.com da ham paydo boâladi va aksincha.
Yaâni, cookieâlar domenlarga asoslangan, ular protokollarni ajratmaydi.
Ushbu opsiya bilan, agar cookie https://site.com tomonidan oârnatilgan boâlsa, bir xil sayt HTTP orqali http://site.com sifatida kirilganda paydo boâlmaydi. Shunday qilib, agar cookieâda shifrlash orqali yuborilmasligi kerak boâlgan maxfiy kontent boâlsa, secure bayrogâi toâgâri narsa.
// https:// da ekanligimizni taxmin qilib
// cookie'ni secure qilish (faqat HTTPS orqali kirish mumkin)
document.cookie = "user=John; secure";
samesite
Bu yana bir xavfsizlik atributi samesite. U XSRF (cross-site request forgery) hujumlaridan himoyalash uchun moâljallangan.
Uning qanday ishlashini va qachon foydali ekanligini tushunish uchun XSRF hujumlariga qaraylik.
XSRF hujumi
Tasavvur qiling, siz bank.com saytiga kirgansiz. Yaâni: oâsha saytdan autentifikatsiya cookieâsi bor. Sizning brauzeringiz uni har soârov bilan bank.com ga yuboradi, shuning uchun u sizni taniydi va barcha maxfiy moliyaviy operatsiyalarni bajaradi.
Endi boshqa oynada vebni koârib chiqayotganda siz tasodifan boshqa sayt evil.com ga keldingiz. Oâsha saytda hakerning hisobiga tranzaksiyani boshlaydigan maydonlar bilan bank.com ga <form action="https://bank.com/pay"> shakli yuboradigan JavaScript kodi bor.
Brauzer bank.com saytiga har safar kirganingizda cookieâlarni yuboradi, hatto forma evil.com dan yuborilgan boâlsa ham. Shuning uchun bank sizni taniydi va toâlovni haqiqatan ham amalga oshiradi.
Bu âCross-Site Request Forgeryâ (qisqacha XSRF) hujumi deb ataladi.
Haqiqiy banklar albatta bundan himoyalangan. bank.com tomonidan yaratilgan barcha formalarda maxsus maydon, âXSRF himoya tokeniâ deb ataladigan narsalar bor, yomon sahifa buni yarata olmaydi yoki masofaviy sahifadan ajrata olmaydi. U formani yuborishi mumkin, lekin maâlumotni qaytarib ololmaydi. bank.com sayt qabul qiladigan har bir formada bunday tokenni tekshiradi.
Bunday himoya amalga oshirish vaqt talab qiladi. Har bir formada kerakli token maydoni borligini taâminlashimiz va barcha soârovlarni ham tekshirishimiz kerak.
Cookie samesite opsiyasi
Cookie samesite opsiyasi bunday hujumlardan himoyalanishning yana bir usulini taqdim etadi, bu (nazariy jihatdan) âxsrf himoya tokenlariniâ talab qilmasligi kerak.
Uning ikkita mumkin boâlgan qiymati bor:
samesite=strict(samesiteqiymatsiz bilan bir xil)
samesite=strict bilan cookie foydalanuvchi bir xil saytdan tashqaridan kelsa hech qachon yuborilmaydi.
Boshqacha qilib aytganda, foydalanuvchi oâz pochtasidan havolaga amal qilsa yoki evil.com dan forma yubor sa, yoki boshqa domendan boshqa operatsiyani bajaris , cookie yuborilmaydi.
Agar autentifikatsiya cookieâlarida samesite opsiyasi boâlsa, XSRF hujumi muvaffaq boâlish imkoni yoâq, chunki evil.com dan yuborish cookieâlarsiz keladi. Shuning uchun bank.com foydalanuvchini tanimaydi va toâlov bilan davom etmaydi.
Himoya ancha ishonchli. Faqat bank.com dan kelgan operatsiyalar samesite cookieâsini yuboradi, masalan bank.com dagi boshqa sahifadan forma yuborish.
Garchi, kichik noqulaylik bor.
Foydalanuvchi oâz eslatmalaridan kabi bank.com ga qonuniy havolaga amal qilganda, bank.com uni tanimasligidan hayron boâladi. Haqiqatan ham, samesite=strict cookieâlari bunday holatda yuborilmaydi.
Biz buni ikkita cookie ishlatib hal qilishimiz mumkin: biri âumumiy tanishâ uchun, faqat âSalom, Johnâ deyish maqsadi uchun, ikkinchisi esa samesite=strict bilan maâlumot oâzgartiradigan operatsiyalar uchun. Keyin saytdan tashqaridan kelgan odam xush kelibsizni koâradi, lekin toâlovlar ikkinchi cookie yuborilishi uchun bank veb-saytidan boshlanishi kerak.
samesite=lax
XSRF dan himoyaladigan va foydalanuvchi tajribasini buzmaydigan yanada yumshoq yondashuv.
Lax rejimi, xuddi strict kabi, brauzerni saytdan tashqaridan kelganda cookieâlar yuborishni taqiqlaydi, lekin istisno qoâshadi.
samesite=lax cookie agar ikkala shart ham toâgâri boâlsa yuboriladi:
-
HTTP metodi âxavfsizâ (masalan GET, lekin POST emas).
Xavfsiz HTTP metodlarning toâliq roâyxati RFC7231 spetsifikatsiyasi da. Asosan, bular oâqish uchun ishlatilishi kerak boâlgan metodlar, yozish uchun emas. Ular hech qanday maâlumot oâzgartiradigan operatsiyalarni bajarmasligi kerak. Havolaga amal qilish har doim GET, xavfsiz metod.
-
Operatsiya yuqori darajali navigatsiyani amalga oshiradi (brauzer manzil satrida URL ni oâzgartiradi).
Bu odatda toâgâri, lekin navigatsiya
<iframe>da amalga oshirilsa, u yuqori darajada emas. Shuningdek, tarmoq soârovlari uchun JavaScript metodlari hech qanday navigatsiyani amalga oshirmaydi, shuning uchun ular mos kelmaydi.
Shunday qilib, samesite=lax ning qilishi asosan eng keng tarqalgan âURL ga oâtishâ operatsiyasiga cookieâlar boâlishiga ruxsat beradi. Masalan, bu shartlarni qanoatlantiruvchi eslatmalardan veb-sayt havolasini ochish.
Lekin yanada murakkab narsa, boshqa saytdan tarmoq soârovi yoki forma yuborish kabi, cookieâlarni yoâqotadi.
Agar bu sizga mos kelsa, samesite=lax qoâshish ehtimol foydalanuvchi tajribasini buzmaydi va himoya qoâshadi.
Umuman olganda, samesite ajoyib opsiya.
Kamchiligi bor:
samesitejuda eski brauzerlar tomonidan eâtiborga olinmaydi (qoâllab-quvvatlanmaydi), 2017-yil atrofida.
Shuning uchun agar biz faqat himoya berish uchun samesite ga tayanadigan boâlsak, eski brauzerlar zaif boâladi.
Lekin biz himoyaning qoâshimcha qatlamini qoâshish uchun samesite ni xsrf tokenlari kabi boshqa himoya choralari bilan birga ishlatishimiz mumkin va keyin, kelajakda eski brauzerlar yoâq boâlganda, ehtimol xsrf tokenlarini tashlab qoâya olamiz.
httpOnly
Bu opsiyaning JavaScript bilan hech qanday aloqasi yoâq, lekin toâliqlik uchun uni eslatishimiz kerak.
Veb-server cookie oârnatish uchun Set-Cookie headerâidan foydalanadi. Shuningdek, u httpOnly opsiyasini oârnatishi mumkin.
Bu opsiya cookieâga har qanday JavaScript kirishni taqiqlaydi. Biz bunday cookieâni koâra olmaymiz yoki document.cookie yordamida manipulyatsiya qila olmaymiz.
Bu haker sahifaga oâz JavaScript kodini kiritib, foydalanuvchi oâsha sahifaga tashrif buyurishini kutganida baâzi hujumlardan himoyalanish uchun ehtiyot chorasi sifatida ishlatiladi. Bu umuman mumkin boâlmasligi kerak, hakerlar bizning saytimizga oâz kodlarini kirita olmasligi kerak, lekin buni amalga oshirishga imkon beruvchi xatolar boâlishi mumkin.
Odatda, agar bunday narsa sodir boâlsa va foydalanuvchi haker JavaScript kodi bilan veb-sahifaga tashrif buyursa, oâsha kod ijro etiladi va autentifikatsiya maâlumotlarini oâz ichiga olgan foydalanuvchi cookieâlari bilan document.cookie ga kirishni oladi. Bu yomon.
Lekin agar cookie httpOnly boâlsa, document.cookie uni koârmaydi, shuning uchun u himoyalangan.
Ilova: Cookie funktsiyalari
Mana cookieâlar bilan ishlash uchun kichik funktsiyalar toâplami, document.cookie ni qoâlda oâzgartirishdan koâra qulayroq.
Buning uchun koâplab cookie kutubxonalari mavjud, shuning uchun bular demo maqsadlari uchun. Garchi toâliq ishlaydigan.
getCookie(name)
Cookieâga kirishning eng qisqa yoâli regular expression dan foydalanish.
getCookie(name) funktsiyasi berilgan name bilan cookieâni qaytaradi:
// berilgan nomdagi cookie'ni qaytaradi,
// topilmasa undefined
function getCookie(name) {
let matches = document.cookie.match(new RegExp(
"(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
));
return matches ? decodeURIComponent(matches[1]) : undefined;
}
Bu yerda new RegExp dinamik ravishda yaratiladi, ; name=<value> ga mos kelish uchun.
Diqqat qiling, cookie qiymati kodlangan, shuning uchun getCookie uni dekodlash uchun oârnatilgan decodeURIComponent funktsiyasidan foydalanadi.
setCookie(name, value, options)
Cookieâning name ini berilgan value ga sukut boâyicha path=/ bilan oârnatadi (boshqa standartlarni qoâshish uchun oâzgartirilishi mumkin):
function setCookie(name, value, options = {}) {
options = {
path: '/',
// kerak bo'lsa bu yerga boshqa standartlarni qo'shing
...options
};
if (options.expires instanceof Date) {
options.expires = options.expires.toUTCString();
}
let updatedCookie = encodeURIComponent(name) + "=" + encodeURIComponent(value);
for (let optionKey in options) {
updatedCookie += "; " + optionKey;
let optionValue = options[optionKey];
if (optionValue !== true) {
updatedCookie += "=" + optionValue;
}
}
document.cookie = updatedCookie;
}
// Foydalanish misoli:
setCookie('user', 'John', {secure: true, 'max-age': 3600});
deleteCookie(name)
Cookieâni oâchirish uchun uni manfiy amal qilish sanasi bilan chaqirishimiz mumkin:
function deleteCookie(name) {
setCookie(name, "", {
'max-age': -1
})
}
Diqqat qiling: cookieâni yangilaganimizda yoki oâchirganimizda, uni oârnatganimizda ishlatgan path va domain opsiyalarini aynan bir xil ishlatishimiz kerak.
Birga: cookie.js.
Ilova: Uchinchi tomon cookieâlari
Cookie foydalanuvchi tashrif buyurayotgan sahifadan boshqa domen tomonidan joylashtirilgan boâlsa, âuchinchi tomonâ deb ataladi.
Masalan:
-
site.comdagi sahifa boshqa saytdan banner yuklaydi:<img src="https://ads.com/banner.png">. -
Banner bilan birga,
ads.comdagi masofaviy serverid=1234kabi cookie bilanSet-Cookieheaderâini oârnatishi mumkin. Bunday cookieads.comdomenidan kelib chiqadi va faqatads.comda koârinadi: -
Keyingi safar
ads.comga kirilganda, masofaviy serveridcookieâsini oladi va foydalanuvchini taniydi: -
Yanada muhimi, foydalanuvchi
site.comdan banneri ham boâlgan boshqa saytother.comga oâtganda,ads.comcookieâni oladi, chunki uads.comga tegishli, shuning uchul tashrif buyuruvchini taniydi va u saytlar orasida harakatlanayotganda kuzatib boradi:
Uchinchi tomon cookieâlari anâanaviy ravishda kuzatuv va reklama xizmatlari uchun ishlatiladi, ularning tabiatiga koâra. Ular kelib chiqqan domenga bogâlangan, shuning uchun ads.com turli saytlar orasida bir xil foydalanuvchini kuzatib borishi mumkin, agar ularning barchasi unga kirsa.
Tabiiyki, baâzi odamlar kuzatuvni yoqtirmaydi, shuning uchun brauzerlar bunday cookieâlarni oâchirishga imkon beradi.
Shuningdek, baâzi zamonaviy brauzerlar bunday cookieâlar uchun maxsus siyosatlar ishlatadi:
- Safari uchinchi tomon cookieâlariga umuman ruxsat bermaydi.
- Firefox uchinchi tomon cookieâlarini bloklaydigan uchinchi tomon domenlarining âqora roâyxatiâ bilan keladi.
Agar biz uchinchi tomon domenidan script yuklasakuchinchi tomon domenidan script yuklasak, masalan <script src="https://google-analytics.com/analytics.js">, va bu script cookie oârnatish uchun document.cookie dan foydalansa, bunday cookie uchinchi tomon emas.
Agar script cookie oârnatsa, script qayerdan kelganidan qatâi nazar â cookie joriy veb-sahifa domeniga tegishli.
Ilova: GDPR
Bu mavzu JavaScript bilan umuman bogâliq emas, faqat cookieâlar oârnatishda yodda tutish kerak boâlgan narsa.
Evropada foydalanuvchilar shaxsiyligini hurmat qilish uchun veb-saytlar qoididlari majmini majburlash uchun GDPR deb ataladigan qonun bor. Bu qoidalardan biri foydalanuvchidan kuzatuv cookieâlari uchun aniq ruxsatni talab qiladi.
Diqqat qiling, bu faqat kuzatuv/identifikatsiya/avtorizatsiya cookieâlari haqida.
Shunday qilib, agar biz faqat baâzi maâlumotlarni saqlaydigan, lekin foydalanuvchini kuzatmaydigan yoki identifikatsiya qilmaydigan cookie oârnatsak, uni erkin qilishimiz mumkin.
Lekin agar biz autentifikatsiya sessiyasi yoki kuzatuv idâsi bilan cookie oârnatmoqchi boâlsak, foydalanuvchi bunga ruxsat berishi kerak.
Veb-saytlarda odatda GDPR ga rioya qilishning ikkita varianti bor. Ikkalasini ham vebda allaqachon koârganingiz kerak:
-
Agar veb-sayt kuzatuv cookieâlarini faqat autentifikatsiya qilingan foydalanuvchilar uchun oârnatmoqchi boâlsa.
Buning uchun roâyxatdan oâtish formasida âshaxsiy hayot siyosatini qabul qilamanâ (cookieâlar qanday ishlatilishini tasvirlaydigan) kabi checkbox boâlishi kerak, foydalanuvchi uni belgilashi kerak, keyin veb-sayt auth cookieâlarini oârnatishda erkin.
-
Agar veb-sayt hamma uchun kuzatuv cookieâlarini oârnatmoqchi boâlsa.
Buni qonuniy qilish uchun veb-sayt yangi kelganlar uchun modal âsplash screenâ koârsatadi va ulardan cookieâlarga rozi boâlishni talab qiladi. Keyin veb-sayt ularni oârnatishi va odamlarga kontentni koârishga imkon berishi mumkin. Bu yangi tashrif buyuruvchilar uchun bezovta qiluvchi boâlishi mumkin. Hech kim kontent oârniga bunday âbosish kerakâ modal splash screenâlarni koârishni yoqtirmaydi. Lekin GDPR aniq kelishuvni talab qiladi.
GDPR faqat cookieâlar haqida emas, balki boshqa shaxsiy hayot bilan bogâliq masalalar haqida ham, lekin bu bizning doiramizdan juda tashqarida.
Xulosa
document.cookie cookieâlarga kirish imkonini beradi
- yozish operatsiyalari faqat unda eslatilgan cookieâlarni oâzgartiradi.
- nom/qiymat kodlanishi kerak.
- bitta cookie 4KB dan oshmasligi kerak, har bir sayt uchun 20+ cookie (brauzerga bogâliq).
Cookie opsiyalari:
path=/, sukut boâyicha joriy yoâl, cookieâni faqat oâsha yoâl ostida koârinishini taâminlaydi.domain=site.com, sukut boâyicha cookie faqat joriy domenda koârinadi. Agar domen aniq oârnatilgan boâlsa, cookie subdomenlarda koârinadigan boâladi.expiresyokimax-agecookie amal qilish vaqtini oârnatadi. Ularsiz cookie brauzer yopilganda oâladi.securecookieâni faqat HTTPS ga aylantiradi.samesitebrauzerni saytdan tashqaridan kelayotgan soârovlar bilan cookie yuborishni taqiqlaydi. Bu XSRF hujumlarining oldini olishga yordam beradi.
Qoâshimcha:
- Uchinchi tomon cookieâlari brauzer tomonidan taqiqlanishi mumkin, masalan Safari buni sukut boâyicha qiladi.
- Yevropa fuqarolari uchun kuzatuv cookieâsini oârnatishda GDPR ruxsat soârashni talab qiladi.
Izohlar
<code>yorlig'ini ishlating, bir nechta satrlar uchun - ularni<pre>yorlig'i bilan o'rab qo'ying, 10 satrdan ortiq bo'lsa - sandbox (plnkr, jsbin, codepenâ¦)