مقالات در حوزه امنیت، DevOps و بازیسازی بصورت مرتب در این صفحه آپلود میشود ، این مقالات یا نوشته من هست یا بهترین اطلاعات جمع آوری شده . knpshayan@gmail.com
حمله CSRF چیست؟
CSRF (Cross-Site Request Forgery) نوعی حمله در امنیت وب است که در آن مهاجم کاربر قانونی را فریب میدهد تا یک درخواست ناخواسته به وبسایت مورد اعتمادش ارسال کند. در نتیجه، عملیاتهایی مثل تغییر رمز عبور، انتقال وجه یا ارسال داده بدون اطلاع کاربر انجام میشود.
💡 به زبان ساده: مهاجم کاری میکند که کاربر بهجای خودش، کار دلخواه مهاجم را انجام دهد، بدون اینکه بداند.

چگونه رخ میدهد؟
وبسایتها برای شناسایی کاربر، از Session یا کوکیها استفاده میکنند. وقتی کاربر به سایت وارد میشود، مرورگر بهطور خودکار کوکیها را همراه با هر درخواست میفرستد.
اگر کاربر در حین فعالیت در سایت امن، روی لینک یا تصویر مخرب سایت دیگری کلیک کند:
مرورگر درخواست را همراه با کوکیها به سایت امن میفرستد
سایت فکر میکند این درخواست از سوی کاربر قانونی آمده و آن را اجرا میکند

مثال واقعی
فرض کنید کاربر "داریوش" وارد سایت بانکی خود شده و وارد حساب کاربریش است.
همزمان، داریوش به یک وبلاگ ناشناس میرود که شامل فرم مخرب است:
<img src="http://bank.com/transfer?to=evil&amount=1000">
مرورگر داریوش بهطور خودکار کوکیهای سایت bank.com را میفرستد.
سایت بانک درخواست انتقال وجه را از طرف داریوش انجام میدهد، بدون اینکه داریوش بفهمد!
مثال ساده (درک کودک)
تصور کن یک مغازه اسباببازی آنلاین داری:
داریوش وارد سایت شده و سبد خریدش پر است.
وبسایت دیگری یک دکمه مخفی دارد که وقتی داریوش کلیک میکند، یک اسباببازی از سبد او بدون اطلاع او خریده میشود.
داریوش فکر میکند فقط دارد وبلاگ میخواند، اما در واقع عملیات از طرف او انجام شده است.
🧑💻 مثال پیشرفته
فرض کن یک سرویس ایمیل شرکتی داری:
کاربران وارد حساب کاربری شده و Session فعال دارند
مهاجم یک لینک مخرب داخل ایمیل فیشینگ برای کاربر میفرستد
کاربر روی لینک کلیک میکند و یک درخواست ارسال ایمیل جعلی به همه همکاران ارسال میشود
ایمیل از طرف کاربر قانونی ارسال شده، بنابراین سیستم ایمیل هیچ هشداری نمیدهد

🧰 ابزارها و روشهای شناسایی CSRF
Burp Suite: تست و شبیهسازی حملات CSRF
OWASP ZAP: تحلیل درخواستها و آسیبپذیریها
Postman: بررسی رفتار سرور با درخواستهای غیرمجاز
🛡️ راههای جلوگیری از CSRF
✅ در سمت سرور:
استفاده از توکن CSRF در فرمها
بررسی Referer و Origin header
اعمال روش POST برای عملیات تغییر داده
محدود کردن اعتبار Session و اعمال تایماوت
✅ در سمت کاربر:
وارد نشدن همزمان به سایتها در تبهای متعدد بدون امنیت کافی
اجتناب از کلیک روی لینکها یا باز کردن تصاویر مشکوک
استفاده از مرورگرهای بهروز و افزونههای امنیتی
✅ جمعبندی
CSRF حملهای است که باعث میشود کاربر بهطور ناخواسته عملیاتی را انجام دهد
از مثال ساده سبد خرید تا مثال پیشرفته ایمیل شرکتی، این حمله میتواند خطرناک باشد
با توکن CSRF، بررسی هدرها و محدودیت Session میتوان امنیت وبسایتها را تضمین کرد
مطلبی دیگر از این انتشارات
آموزش کاتلین در سال ۲۰۲۱ [ویدیو]
مطلبی دیگر از این انتشارات
Async در مقابل Sync
مطلبی دیگر از این انتشارات
کاربرد فایل gitkeep.