August 9, 2025
2 min read
کوکیهای HTTPOnly یک راهکار عملی برای کاهش حملات اسکریپت سمت کلاینت، بهویژه اسکریپت بین سایتی (XSS) هستند. هنگامی که ویژگی HTTPOnly
روی یک کوکی تنظیم میشود، به مرورگرها دستور میدهد که آن کوکی را از دسترس جاوا اسکریپت سمت کلاینت، مانند دسترسی از طریق document.cookie
، دور نگه دارند. این ویژگی امنیتی بهطور خاص به مقابله با بردار حملهای میپردازد که در آن اسکریپتهای مخرب با بهرهبرداری از آسیبپذیریهای موتور اسکریپتنویسی مرورگر، برای سرقت شناسههای نشست یا دادههای حساس تلاش میکنند.
ارزیابیهای تجربی نشان میدهد که فعال کردن فلگ HTTPOnly بر روی کوکیهای نشست، خطر سرقت نشست از طریق حملات XSS را به میزان قابلتوجهی کاهش میدهد. در محیطهای کنترلشده تست نفوذ، محققان موارد زیر را مشاهده کردند:
Barth et al. دریافتند که «اکثریت قریب به اتفاق حملات XSS از توانایی جاوا اسکریپت برای خواندن document.cookie و استخراج توکنهای نشست بهرهبرداری میکنند» (Barth et al., 2008). این آزمایش شامل شبیهسازی پیلودهای XSS در برنامههای وب با و بدون کوکیهای HTTPOnly بود. نتایج نشاندهنده نرخ شکست ۱۰۰٪ در تلاش برای سرقت کوکی در صورت وجود HTTPOnly بود، در مقایسه با نرخ موفقیت ۱۰۰٪ در غیاب آن.
مطالعات بیشتر نشان میدهد که اگرچه HTTPOnly از همه انواع XSS جلوگیری نمیکند - مانند انواعی که محتوای صفحه را تغییر میدهند یا اقدامات احرازهویتشده (CSRF) را انجام میدهند - اما مانع مهمی در برابر مخربترین پیامدهای XSS است: به خطر افتادن نشست.
یافتههای کلیدی:
در عمل، پیادهسازی HTTPOnly باید برای دفاع جامع با سایر دستورالعملهای امنیتی (مانند فلگهای Secure و SameSite) ترکیب شود. محدودیتها عبارتند از:
بهطور کلی، اثربخشی این ویژگی در تحقیقات دانشگاهی و صنعتی بهخوبی ثابت شده است و نقش آن را به عنوان یک کنترل ضروری برای امنیت نشست برنامههای وب تأیید میکند.