2021-08-28 18:50:25
آسیبپذیری Cross-Site Request Forgery #CSRF حملهای است که در آن کاربر Authenticate شده به صورت ناخواسته دستوری را که از سمت یک مهاجم ارسال گردیده است اجرا مینماید.
به این دلیل که مهاجم با استفاده از این آسیب پذیری نمیتواند هیچ دیتایی را مشاهده کند، این نوع حملات مشخصاً در درخواستهای state-changing یا درخواستهایی که تغییراتی را ذخیره میکند اجرا میشوند.
این حمله معمولاً با یک تکنیک Social Engineering همراه است، نظیر ارسال یک لینک و با کلیک نمودن کاربر روی آن لینک این آسیب پذیری Exploit میگردد. Exploit این آسیب پذیری میتواند شامل جابجایی پول، تغییر کلمه عبور، تغییر آدرس ایمیل و موارد مشابه باشد.
در صورتی که کاربر قربانی Admin باشد نیز این حمله میتواند کل سیستم را مورد هدف قرار دهد.
چگونه این آسیب پذیری را رفع کنیم؟
• سعی کنید تمامی درخواستهای برنامه خود را با استفاده از متد POST سِت نمائید. بدین صورت شانس Exploit این آسیب پذیری به دلیل حذف شدن امکان ارسال لینک آلوده (که از متد GET استفاده میکند) به حداقل میرسد.
• مقدار Session را به صورت هش (Hash) شده ذخیره نموده و اطمینان حاصل نمائید در تمام Request ها از Session استفاده میگردد.
• عملیاتهای حساس را در چند مرحله انجام دهید. به طور مثال ارسال دو Request از نوع POST برای عملیات انتقال وجه در بانکها میتواند تا حد بالایی از این آسیب پذیری جلوگیری نماید.
• از HTTPS استفاده نمائید. (این مورد از انجام حمله CSRF جلوگیری نمیکند، ولی تا حد بالایی ضریب امنیت را افزایش می.دهد.)
• از CSRF Token استفاده نمائید. این Token به طور کلی جلوی این حمله را خواهد گرفت.
• در صورت امکان در Request های خود از Captcha استفاده نمائید.
@intsec
216 views15:50