در حال بارگذاری...
تست قابلیت جعل درخواست (Request Forgery) در منطق تجاری برای اطمینان از اینکه مهاجم نمیتواند درخواستهای غیرمجاز ایجاد کند.
اهداف این درس
جعل درخواست (Request Forgery) شامل ارسال درخواستهای غیرمجاز از طرف کاربر دیگر یا تغییر پارامترهای درخواست برای دسترسی غیرمجاز است. این شامل CSRF و جعل پارامتر میشود.
نوعی حمله که در آن مهاجم کاربر قربانی را مجبور به ارسال درخواست ناخواسته به سرور میکند.
| نوع | توضیح | مثال |
|---|---|---|
| CSRF | ارسال درخواست از طرف قربانی | تغییر ایمیل کاربر |
| جعل پارامتر | تغییر پارامترهای درخواست | تغییر ID کاربر در URL |
| جعل API | ارسال درخواست مستقیم به API | حذف کاربر از طریق API |
تمام درخواستهایی که تغییر ایجاد میکنند شناسایی کنید: تغییر پروفایل، حذف حساب، انتقال وجه و موارد مشابه.
1<form action="https://target.com/change-email" method="POST">2 <input type="hidden" name="email" value="attacker@evil.com">3 <input type="submit" value="Click me!">4</form>5<script>document.forms[0].submit();</script>هشدار
هرگز از GET برای عملیات تغییردهنده استفاده نکنید. تمام عملیات تغییردهنده باید با POST، PUT یا DELETE انجام شوند.
توصیه عملی
از فریمورکهایی که محافظت CSRF داخلی دارند (مثل Django، Laravel، ASP.NET) استفاده کنید.
CSRF یکی از رایجترین روشهای جعل درخواست است.
پارامترهای قابل حدس مثل ID کاربر باید محافظت شوند.
CSRF Token باید در هر درخواست منحصربهفرد باشد.
اعتبارسنجی مرجع (Referer) لایه دفاعی اضافی است.
کدام روش مؤثرترین پیشگیری از CSRF است؟
تفاوت بین CSRF و جعل پارامتر چیست؟
CSRF شامل ارسال درخواست از طرف کاربر قربانی بدون اطلاع اوست. جعل پارامتر شامل تغییر پارامترهای درخواست برای دسترسی غیرمجاز است.
آیا استفاده از CSRF Token کافی است؟
CSRF Token لایه دفاعی مهمی است اما بهتر است با روشهای دیگر مثل SameSite Cookie و اعتبارسنجی مرجع ترکیب شود.