آسیبپذیری CSRF یا Cross-Site Request Forgery به یک وبسایت یا برنامه مخرب اجازه میدهد تا مرورگر کاربر را فریب دهد تا درخواستهای ناخواستهای را به سایت دیگری که کاربر از قبل در آن احراز هویت کرده است، ارسال کند. این امر میتواند منجر به اقداماتی مانند انتقال وجه، تغییر رمز عبور یا سرقت دادههای کاربر شود. اساساً، مهاجم از اعتمادی که وبسایت به Session احراز هویت شده کاربر دارد، سوءاستفاده میکند.
آسیبپذیری CSRF میتواند برای کاربران و مشاغل ضررهای قابل توجهی داشته باشد.

نحوه کار آسیبپذیری CSRF :
- احراز هویت کاربر: کاربر وارد یک وبسایت (مثلاً بانک خود) میشود و مرورگر او یک Session را ذخیره میکند.
- لینک/فرم مخرب: مهاجم یک لینک یا فرم مخرب ایجاد میکند که با کلیک یا ارسال آن، درخواستی را به وبسایت هدف ارسال کند.
- اجرای خودکار: مرورگر کاربر، با Session معتبر، به طور خودکار درخواست را به وبسایت هدف ارسال میکند. با این تصور که درخواست کاربر قانونی است، بنابراین عمل (مثلاً انتقال پول) را اجرا میکند.

ویژگیهای کلیدی آسیبپذیری CSRF:
- از اعتماد کاربر سوءاستفاده میکند: CSRF به این واقعیت متکی است که وبسایت موردنظر، به کاربران احراز هویت شده و درخواستهای آنها اعتماد دارد.
- تغییر وضعیت: اقداماتی را شامل می شود که دادهها یا تنظیمات وبسایت(نه فقط مشاهده اطلاعات) را تغییر میدهند.
- حمله یک طرفه: مهاجم میتواند درخواست را ارسال کند اما عموماً نمیتواند پاسخ سرور را ببیند.
نمونههایی از حملات بر روی این آسیبپذیری:
- انتقال وجه غیرمجاز: مهاجم میتواند لینکی ایجاد کند که با کلیک روی آن، پول از حساب بانکی کاربر به حساب مهاجم منتقل شود.
- تغییر رمز عبور: یک مهاجم میتواند رمز عبور کاربر را به مقداری که برای مهاجم شناخته شده است تغییر دهد.
- تصاحب حساب کاربر: در برخی موارد، CSRF میتواند برای به دست گرفتن کنترل یک حساب استفاده شود، اگر عملکرد آن امکان تنظیم مجدد رمز عبور یا سایر تغییرات حساب را فراهم کند.

پیشگیری آسیبپذیری CSRF:
- توکنهای CSRF: وبسایتها باید توکنهای CSRF که مقادیر منحصر به فرد و غیرقابل پیشبینی هستند را پیادهسازی کنند. این مقادیر به فرمها و درخواستها اضافه میشود. سرور قبل از پردازش درخواست، تأیید میکند که توکن با Session کاربر مطابقت دارد یا خیر.
- ویژگی کوکی SameSite: تنظیم ویژگی SameSite روی Strict یا Lax بر روی کوکیها میتواند با محدود کردن ارسال کوکیها در درخواستهای بین سایتی، به جلوگیری از CSRF کمک کند.
- بررسی هدر: اعتبارسنجی هدر میتواند به شناسایی درخواستها از مبداهای مختلف کمک کند، اما این روش بینقص نیست زیرا میتوان آن را دور زد.
- کوکی ارسال دوگانه: این روش شامل ارسال یک کوکی و یک فیلد فرم پنهان با مقدار تصادفی یکسان است. سرور قبل از پردازش درخواست، مطابقت هر دو را تأیید میکند.
به طور خلاصه، آسیبپذیریهای CSRF یک تهدید جدی هستند که میتوانند منجر به آسیب قابل توجهی برای کاربران و مشاغل شوند. درک نحوه عملکرد آنها و اجرای اقدامات متقابل مناسب برای حفظ امنیت برنامههای وب بسیار اهمیت دارد.