Session Fixation ترکیبشده با XSS برای سرقت کامل حساب
چگونه یک XSS کوچک، شناسهی نشست دلخواه مهاجم را روی مرورگر قربانی تنظیم میکند.
حتی اگر شناسهی نشست از URL قابلتنظیم نباشد، یک XSS در همان دامنه میتواند با document.cookie مقدار کوکی نشست را به یک مقدار دلخواه (که مهاجم از قبل میداند) تغییر دهد. اگر سرور بعد از لاگین regenerate نکند، این دقیقاً همان اثر Session Fixation کلاسیک را دارد، اما بدون نیاز به URL آسیبپذیر.
چرا این نمونه مهم است
نشان میدهد چرا دفاع «regenerate بعد از لاگین» باید همیشه فعال باشد، حتی اگر فکر کنید منبع دیگری برای تنظیم شناسهی نشست وجود ندارد — یک XSS کوچک در هر نقطه از سایت کافی است.
راهحل
Regenerate اجباری شناسهی نشست بعد از لاگین، بههمراه رفع هر XSS موجود در سایت؛ این دو دفاع مستقل باید هر دو برقرار باشند.