در حال بارگذاری...
بررسی نشت متغیرهای نشست از طریق URL، headers و سایر منابع قابل دسترسی در برنامههای وب.
اهداف این درس
متغیرهای نمایان نشست (Exposed Session Variables) زمانی رخ میدهد که Session ID یا سایر اطلاعات نشست از طریق URL، headers، لاگها یا سایر منابع قابل دسترسی فاش شود.
| منبع نشت | خطر | تأثیر |
|---|---|---|
| URL | ذخیره در لاگها و تاریخچه | سرقت نشست |
| Referer header | ارسال به سایتهای دیگر | سرقت نشست |
| Body HTML | نمایش در صفحه | سرقت از طریق XSS |
| لاگ سرور | ذخیره در فایل لاگ | دسترسی غیرمجاز |
| Cache | ذخیره در cache مرورگر | دسترسی غیرمجاز |
بررسی کنید آیا Session ID در URL قرار دارد:
1# بررسی URLها2curl -v https://target.com 2>&1 | grep -i 'session'34# بررسی لینکها در صفحه5curl -s https://target.com | grep -i 'session\|sid\|jsessionid'67# بررسی redirectها8curl -v -L https://target.com 2>&1 | grep -i 'location'بررسی کنید آیا Session ID از طریق Referer header فاش میشود:
1# بررسی Referrer-Policy2curl -I https://target.com | grep -i 'referrer-policy'34# تست ارسال Referer5curl -v -e 'https://target.com/page?session=abc123' https://external.com 2>&1 | grep -i 'referer'بررسی کنید آیا Session ID در لاگهای سرور ذخیره میشود:
نشت Session ID میتواند منجر به تصاحب حساب کاربری، دسترسی غیرمجاز به اطلاعات حساس و سرقت هویت شود.
1Referrer-Policy: no-referrer-when-downgrade2# یا3Referrer-Policy: same-origin4# یا5Referrer-Policy: strict-origin-when-cross-originتوصیه عملی
هرگز Session ID را در URL قرار ندهید. از Cookie با HttpOnly و Secure استفاده کنید و Referrer-Policy را تنظیم کنید.
Session ID فقط باید در Cookie ذخیره شود.
از Cookie با HttpOnly و Secure استفاده کنید.
Referer header را با Referrer-Policy کنترل کنید.
لاگهای سرور را از نظر نشت Session ID بررسی کنید.
Session ID نباید در کجا ذخیره شود؟
چرا Session ID نباید در URL باشد؟
زیرا URL در لاگهای سرور، تاریخچه مرورگر، Referer header، bookmarks و cache ذخیره میشود. این باعث میشود Session ID در معرض سرقت قرار گیرد.
Referer header چگونه Session ID را فاش میکند؟
وقتی Session ID در URL باشد و کاربر روی لینک کلیک کند، مرورگر URL کامل (شامل Session ID) را در Referer header به سایت مقصد ارسال میکند.