Session Hijacking یا ربودن نشست یکی از مهمترین تهدیدهای امنیتی در دنیای شبکه و برنامههای تحت وب است. در این نوع حمله، مهاجم تلاش میکند نشست فعال یک کاربر را تصاحب کرده و بدون احراز هویت مجدد، وارد حساب او شود. از آنجایی که نشستها معمولاً با کوکی، توکن یا شناسه نشست مدیریت میشوند، دسترسی به این دادهها میتواند کنترل کامل کاربر را در اختیار مهاجم قرار دهد.
در این مقاله از پارس تدوین یک مرجع کامل، حرفهای درباره Session Hijacking ارائه میکنیم؛ شامل انواع حمله، نحوه وقوع، تهدیدات، تکنیکهای رایج، و بهترین روشهای پیشگیری.
Session Hijacking چیست؟
Session Hijacking به فرآیندی گفته میشود که در آن یک فرد غیرمجاز با دستکاری یا سرقت اطلاعات نشست، خود را جایگزین کاربر اصلی میکند. سیستم بعد از سرقت نشست، فرد مهاجم را همان کاربر معتبر تشخیص میدهد و این موضوع میتواند منجر به افشای اطلاعات، تغییر تنظیمات، برداشت دادهها و آسیبهای جدی شود.
نشستها معمولاً در موارد زیر استفاده میشوند:
ورود کاربران به سایتها و پنلها
سیستمهای مالی، بانکی و فروشگاهی
APIها و سرویسهای مبتنی بر توکن
نرمافزارهای سازمانی
به همین دلیل، Session Hijacking یک تهدید حیاتی برای هر کسبوکار آنلاین محسوب میشود.
انواع حملات Session Hijacking
در ادامه، یک دستهبندی کامل و بازنویسیشده از انواع روشهای ربودن نشست ارائه شده است:
1. ربودن نشست در سطح برنامه (Application Level Hijacking)
در این نوع حمله، تمرکز روی ساختار داخلی برنامه، کوکیها و توکنهای احراز هویت است. مهاجم تلاش میکند شناسه نشست را از طریق آسیبپذیریهای برنامهنویسی به دست آورد.
شیوههای رایج:
سرقت کوکی با بهرهبرداری از XSS
سوءاستفاده از ذخیرهسازی ناامن توکنها در برنامههای API محور
ضعف در مدیریت نشست سمت سرور
2. ربودن نشست در سطح شبکه (Network Level Hijacking)
در این سناریو، مهاجم با شنود ترافیک شبکه به اطلاعات نشست دسترسی پیدا میکند. این خطر بیشتر در شبکههای عمومی و رمزنگارینشده مشاهده میشود.
روشهای متداول:
شنود بستههای داده (Sniffing)
حملات مرد میانی (MITM)
Session Sidejacking
در چنین شرایطی اگر وبسایت از HTTPS استفاده نکند، Session Hijacking بسیار سادهتر انجام میشود.
3. ربودن نشست با XSS
در حملات Cross-Site Scripting مهاجم اسکریپتی را در مرورگر قربانی اجرا میکند که میتواند کوکی یا توکن نشست را استخراج کند.
نمونههای معمول:
تزریق کد مخرب در فرمهای ورودی
درج اسکریپت در بخش نظرات یا صفحات آسیبپذیر
سوءاستفاده از فیلترهای ضعیف سمت سرور
4. حمله Session Fixation
در Session Fixation مهاجم بهجای سرقت نشست موجود، ابتدا یک جلسه دلخواه تولید میکند و قربانی را وادار به استفاده از آن میکند.
مراحل کلی:
تولید شناسه نشست (Session ID) توسط مهاجم
ارسال آن از طریق لینک، فرم یا آدرس آلوده
ورود قربانی با نشست دستکاریشده
استفاده مهاجم از همان نشست برای ورود
این حمله زمانی موفق است که سرور پس از ورود کاربر شناسه نشست را تغییر ندهد.
5. ربودن نشست مرورگر (Browser Session Hijacking)
هرگونه کنترل غیرمجاز روی مرورگر کاربر، راه را برای سرقت نشست باز میکند.
راهکارهای مهاجم:
افزونههای مخرب
بهرهبرداری از حفرههای امنیتی مرورگر
ربودن لاگین ذخیرهشده
6. حمله فیزیکی (Physical Session Hijacking)
اگر مهاجم به دستگاه کاربر دسترسی مستقیم داشته باشد، استخراج کوکیها یا استفاده از نشست فعال بسیار ساده خواهد بود.
7. Session Replay
در این روش، مهاجم دادههای نشست را صرفاً ذخیره کرده و در زمان دیگری دوباره ارسال میکند تا دسترسی بگیرد.
8. حمله CSRF (Cross-Site Request Forgery)
در CSRF مهاجم نشست را نمیدزدد، اما با استفاده از نشست فعال قربانی، درخواستهای جعلی ارسال میکند.
مراحل کلی وقوع حمله Session Hijacking
در این بخش یک نسخه بازنویسیشده و غیرآموزشی/غیراستفادهپذیر برای حمله قرار داده شده است:
1. جمعآوری اطلاعات
مهاجم به دنبال شناخت ساختار نشست، نحوه اعتبارسنجی، نقاط ضعف امنیتی و نحوه انتقال داده بین کاربر و سرور است.
2. شناسایی بستر آسیبپذیر
در این مرحله شبکه یا برنامهای که احتمال نشت اطلاعات نشست دارد بررسی میشود؛ مانند وبسایتهای بدون HTTPS، فرمهای ناامن یا سیستمهای دارای ضعف XSS.
3. دسترسی به اطلاعات نشست
اگر ارتباط رمزگذاری نشده باشد یا سامانه از ورودیهای نامعتبر محافظت نکرده باشد، امکان افشای دادههای نشست وجود دارد.
4. سوءاستفاده از نشست ربودهشده
پس از دسترسی، مهاجم میتواند درخواستها را با همان نشست معتبر ارسال کند؛ که این موضوع میتواند به دستکاری دادهها یا ورود غیرمجاز منجر شود.
راهکارهای جلوگیری از Session Hijacking
در ادامه یک لیست جامع، حرفهای و از سطح بالا برای جلوگیری از حملات Session Hijacking ارائه شده است:
1. استفاده از HTTPS در کل سایت
رمزنگاری ترافیک باعث میشود حتی اگر بستهای شنود شود، محتوای جلسه قابل استخراج نباشد.
راهکارهای تکمیلی:
استفاده از HSTS
پیکربندی صحیح گواهی SSL
2. ایمنسازی کوکیها
استفاده از ویژگیهای زیر ضروری است:
HttpOnly: جلوگیری از دسترسی جاوااسکریپت
Secure: ارسال فقط روی HTTPS
SameSite: کاهش خطر CSRF
3. احراز هویت چندمرحلهای (MFA)
در صورت سرقت نشست، مرحله دوم احراز هویت مانع کامل ورود مهاجم میشود.
4. محدود کردن مدت زمان نشست (Session Timeout)
نشستهای طولانی خطر بیشتری دارند. نشستهای کوتاهمدت امنیت را افزایش میدهند.
5. تولید مجدد Session ID پس از ورود
برای جلوگیری از Session Fixation باید شناسه نشست بعد از لاگین بازتولید شود.
6. مقابله با XSS
اعتبارسنجی ورودی
استفاده از Content Security Policy
ضدعفونی دادهها
7. محدود کردن نشست به IP یا دستگاه کاربر
این روش باعث میشود در صورت تغییر ناگهانی موقعیت یا دستگاه، نشست بیاعتبار شود.
8. مانیتورینگ نشستها و تشخیص رفتار مشکوک
ثبت و تحلیل رفتار کاربران میتواند حملات ربودن نشست را قبل از موفقیت کامل متوقف کند.
9. جلوگیری از حملات شبکه (MITM)
استفاده از VPN
جلوگیری از ARP Spoofing
رمزنگاری داخلی شبکههای سازمانی
چکلیست نهایی جلوگیری از Session Hijacking
فعالسازی HTTPS
کوکیهای امن با HttpOnly / Secure / SameSite
احراز هویت چندعاملی
تولید مجدد Session ID
محدود کردن عمر نشست
جلوگیری از XSS و CSRF
مانیتورینگ نشستها
رمزنگاری دادههای حساس
تست امنیتی دورهای
جمعبندی
Session Hijacking یکی از مهمترین تهدیدات امنیتی برای وبسایتها و سرویسهای آنلاین است. با وجود اینکه مهاجمان از روشهای مختلفی برای ربودن نشست استفاده میکنند، اما با بهکارگیری سیاستهای امنیتی صحیح، مدیریت درست نشست، استفاده از HTTPS، افزایش سطح امنیت کوکیها و پیادهسازی کنترلهای احراز هویت میتوان خطر این حملات را به حداقل رساند.
در پارس تدوین تلاش کردیم یک مقاله جامع و کاملاً حرفهای درباره Session Hijacking ارائه کنیم تا بتوانید از آن در وبسایت خود استفاده کنید.
سوالات متداول
Session Hijacking چیست؟
Session Hijacking یا ربودن نشست نوعی حمله است که مهاجم با سرقت کوکیها یا شناسه نشست کاربر، وارد حساب او میشود و بدون نیاز به رمزعبور، به اطلاعات دسترسی پیدا میکند.
چرا حملات Session Hijacking خطرناک هستند؟
چون مهاجم بعد از ربودن نشست دقیقاً نقش کاربر اصلی را دارد. این یعنی میتواند وارد حساب، مدیریت پنل، انجام تراکنش یا مشاهده اطلاعات محرمانه شود بدون اینکه سیستم متوجه ورود غیرمجاز شود.
چه عواملی باعث آسیبپذیری در برابر Session Hijacking میشوند؟
استفاده از HTTP بهجای HTTPS
کوکیهای ناامن
وجود آسیبپذیری XSS
ذخیره نادرست توکنهای نشست
نشستهای طولانیمدت و بدون محدودیت زمانی
آیا استفاده از HTTPS جلوی Session Hijacking را میگیرد؟
HTTPS بخش مهمی از امنیت را فراهم میکند، چون ترافیک را رمزنگاری کرده و جلوی MITM و شنود نشست را میگیرد. اما بهتنهایی کافی نیست و باید کوکیها، توکنها و ساختار نشست هم درست پیادهسازی شوند.
تفاوت Session Hijacking و Session Fixation چیست؟
Session Hijacking: مهاجم نشست فعال کاربر را سرقت میکند.
Session Fixation: مهاجم یک Session ID میسازد و قربانی را مجبور به استفاده از همان نشست میکند. سپس همان جلسه را تصاحب میکند.






