CodeShot
Midسختی 3 از ۵· در 72٪ مصاحبه‌های این حوزه پرسیده شده

XSS چیست و چه تفاوتی با CSRF دارد؟

نشان کردن

پاسخ کوتاه

XSS (Cross-Site Scripting) تزریق اسکریپت مخرب در صفحهٔ یک سایت معتبر است که در مرورگر قربانی اجرا می‌شود؛ CSRF (Cross-Site Request Forgery) کاربر لاگین‌شده را فریب می‌دهد تا از یک سایت دیگر، ناخواسته یک درخواست معتبر به سایت اصلی بفرستد.

پاسخ کامل

در XSS، مهاجم کد اجرا می‌کند (مثلاً سرقت کوکی)؛ در CSRF، مهاجم کد اجرا نمی‌کند بلکه از اعتبار نشست (Session) قربانی سوءاستفاده می‌کند تا یک عملیات (مثل تغییر رمز عبور) را بدون اطلاع او انجام دهد.

نکته مهم

راه‌حل XSS: Encode کردن خروجی HTML. راه‌حل CSRF: Anti-Forgery Token (مثل [ValidateAntiForgeryToken] در ASP.NET Core).

اشتباه رایج

❌ فرض کردن که HTTPS به‌تنهایی از XSS یا CSRF جلوگیری می‌کند (HTTPS فقط ترافیک را رمزنگاری می‌کند، نه محتوای مخرب را فیلتر).