آسیب پذیری Cross-Site Request Forgery (CSRF)


شرح آسیب پذیری:

Cross-Site Request Forgery (CSRF) حمله ای است که در آن کاربر Authenticate شده به صورت ناخواسته دستوری را که از سمت یک مهاجم ارسال گردیده است اجرا می نماید. به این دلیل که مهاجم با استفاده از این آسیب پذیری نمی تواند هیچ دیتایی را مشاهده کند، این نوع حملات مشخصا در درخواست های state-changing یا درخواست هایی که تغییراتی را ذخیره می کند اجرا می شوند. این حمله معمولا با یک تکنیک Social Engineering همراه است، نظیر ارسال یک لینک و با کلیک نمودن کاربر روی آن لینک این آسیب پذیری Exploit می گردد. Exploit این آسیب پذیری می تواند شامل جابجایی پول، تغییر کلمه عبور، تغییر آدرس ایمیل و موارد مشابه باشد. در صورتی که کاربر قربانی Admin باشد نیز این حمله می تواند کل سیستم را مورد هدف قرار دهد.

چگونه این آسیب پذیری را رفع کنیم ؟

1) سعی کنید تمامی درخواست های برنامه خود را با استفاده از متد POST ست نمائید. بدین صورت شانس Exploit این آسیب پذیری به دلیل حذف شدن امکان ارسال لینک آلوده (که از متد GET استفاده می کند) به حداقل می رسد.
2) مقدار Session را به صورت هش شده ذخیره نموده و اطمینان حاصل نمائید در تمام Request ها از Session استفاده می گردد.
3) عملیات های حساس را در چند مرحله انجام دهید. به طور مثال ارسال دو Request از نوع POST برای عملیات انتقال وجه در بانک ها می تواند تا حد بالایی از این آسیب پذیری جلوگیری نماید.
4) از HTTPS استفاده نمائید. (این مورد از انجام حمله CSRF جلوگیری نمیکند، ولی تا حد بالایی ضریب امنیت را افزایش می دهد.)
5) از CSRF Token استفاده نمائید. این Token به طور کلی جلوی این حمله را خواهد گرفت.
6) در صورت امکان در Request های خود از Captcha استفاده نمائید.

میلاد خوشدل

در حوزه‌ی امنیت وب و شبکه فعالیت می کند، عاشق پارکور است و مدیریت دیتاسنتر، امن سازی شبکه های مخابراتی و کابلی و برنامه نویسی وب و موبایل از تجارب کاری او می باشد. او در حال حاضر بنیانگذار ریجاکس است.

نظر خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

هجده + ده =


تگ های html مجاز به استفاده می باشند: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

ارسال یک پیام