+1 امتیاز
قبل در برنامه نویسی توسط (1.1هزار امتیاز)
دوباره دسته بندی کردن قبل توسط
حمله CSRF به یک وب سایت چیست و چگونه انجام می شود و چگونه می توان از آن جلوگیری کرد؟

1 پاسخ

+3 امتیاز
قبل توسط (7.1هزار امتیاز)
ویرایش شده قبل توسط
 
بهترین پاسخ

csrf :Cross-Site Request Forgeries: (جعل درخواست بین سایتی : درخواستی که از طریق یک سایت دیگر می‌آید)

حملات جعل درخواست بین سایتی، از اعتمادی که یک سایت به کاربر خود و مرورگر وی دارد سوء استفاده میکند و به طور کلی تمام حمله از طرف یکی از کاربران سایت شکل می گیرد. به این ترتیب که یک سایت مخرب درخواستی را به یک برنامه‌ی کاربردی تحت وب می‌فرستد که کاربر قبلا با آن از طریق یک وب‌سایت دیگر احراز هویت شده است. به این ترتیب، مهاجم از طریق مرورگر قربانی دارای سطح دسترسی در برنامه‌ی کاربردی مورد نظر خواهد شد. اغلب برنامه های کاربردی تحت وب مانند رسانه ها و شبکه های اجتماعی، واسط پست الکترونیک مبتنی بر مرورگر، بانکداری آن‌لاین و واسط‌های وب تجهیزات شبکه، هدف این حمله قرار می‌گیرند.
به عنوان مثالی از جعل درخواست بین سایتی فرض کنید که کاربر شماره یک، برای یک سایت بانکی کاربری شناخته شده و معتبر است. کاربر شماره دو که فردی خرابکار است، یک تصویر را بر روی سایت شبکه اجتماعی ارسال می¬کند که آدرس پشت آن، به یک فعالیت کاربر شماره یک در آن سایت بانکی اشاره می¬کند. اگر وب سایت بانک مورد نظر اطلاعات تایید هویت کاربر شماره یک را در یک کوکی ذخیره کرده باشد و اگر آن کوکی هنوز منقضی نشده باشد، آنگاه تلاش مرورگر کاربر شماره یک برای باز کردن تصویر ارسال شده، باعث می¬شود که اطلاعات وی از کوکی مذکور بازیابی شده و بدون تایید کاربر شماره یک، یک فعالیت بانکی رخ دهد. در حقیقت در این مثال، کاربر شماره دو درخواستی را به صورت جعلی به جای کاربر شماره یک به وب سایت بانک مذکور ارسال کرده است.

روش کلی برای مقابله با حمله‌ی CSRF، استفاده از نشانه های امنیتی همراه با هر درخواست مشتری است. این نشانه ها باید برای هر سشن کاربر یکتا بوده و می توانند برای هر درخواست نیز یکتا باشند. به این ترتیب، سرویس‌دهنده‌ی برنامه‌ی کاربردی تحت وب می‌تواند یقین حاصل کند که درخواست‌های دریافتی از منبع مجاز ارسال می شوند.
راه حل دیگر، شناسایی و برطرف کردن آسیب پذیری‌های CSRF است. ساده‌ترین راه برای تشخیص آسیب پذیری یک برنامه‌ی کاربردی در برابر CSRF، این است که همه‌ی لینک ها و فرم ها دارای نشانه‌ی غیرقابل پیش‌بینی به ازای هر کاربر باشند. بدون چنین نشانه‌های غیرقابل پیش‌بینی، مهاجم می تواند درخواست‌های مخرب جعلی تولید نماید.

همچنین بهتراست جهت جلوگیری از این حملات :

ﭘﻴﺸﻨﻬﺎﺩﺍﺗﯽ ﺑﺮﺍﻱ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﺎﻥ :‬
‫- ﺗﺴﺖ ﻋﻤﻮﻣﯽ ﺑﺮﺍﻱ ﺟﺪﺍﺳﺎﺯﯼ ﻣﺎﺷﻴﻦ ﺍﺯ ﺍﻧﺴﺎﻥ )‪(Captcha‬‬
‫- ﺑﺮﺭﺳﯽ ﻭ ﻣﻨﻘﻀﯽ ﮐﺮﺩﻥ ﮐﻮﮐﯽ )‪(Cookie‬‬
‫- ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺷﻨﺎﺳﻪ ﻣﻌﺘﺒﺮ )‪(Valid Token‬‬
‫- ﺍﺯ ﻣﺘﻮﺩ ‪ GET‬ﺍﺳﺘﻔﺎﺩﻩ ﻧﮑﻨﻴﺪ

ﭘﻴﺸﻨﻬﺎﺩﺍﺗﻲ ﺑﺮﺍﻱ ﻛﺎﺭﺑﺮﺍﻥ :‬
‫- ﺑﻌﺪ ﺍﺯ ﺍﺗﻤﺎﻡ ﮐﺎﺭ ﺩﺭ ﺳﺎﻳﺖ ﺣﺘﻤﺎ ﺑﺮ ﺭﻭﯼ ﺧﺮﻭﺝ )‪ (log off‬ﮐﻠﻴﮏ ﮐﻨﻴﺪ ﺗﺎ ﺑﻪ ﻃﻮﺭ ﮐﺎﻣﻞ ﺍﺯ ﺳﺎﻳﺖ ﺧﺎﺭﺝ ﺷﻮﻳﺪ.‬
‫- ﺩﺭ ﺻﻮﺭﺗﯽ ﮐﻪ ﺩﺭ ﺣﺎﻝ ﻣﺸﺎﻫﺪﻩ ﺳﺎﻳﺖ ﺧﺎﺻﯽ ﻫﺴﺘﻴﺪ ﺍﺯ ﻣﺮﻭﺭ ﮐﺮﺩﻥ ﺳﺎﻳﺖ ﻫﺎﯼ ﺩﻳﮕﺮ ﺑﭙﺮﻫﻴﺰﻳﺪ.‬
‫- ﻟﻴﻨﻚ ﻫﺎ ﻭ ﻓﺎﻳﻞ ﻫﺎﻱ ﻣﺸﻜﻮﻙ ﺭﺍ ﺑﻄﻮﺭ ﻛﻠﻲ ﺑﺎﺯ ﻧﻜﻨﻴﺪ .

و اطلاعات تکمیلی:

 1 , 2 , 3 , 4

سوال شده 8 سال قبل در برنامه نویسی توسط (778 امتیاز)
برچسب گذاری دوباره 8 سال قبل توسط
دلیل عدم استفاده از GET برای جلوگیری از حملات CSRF

سوالات مشابه

0 امتیاز
1 پاسخ 520 بازدید
+2 امتیاز
1 پاسخ 580 بازدید
0 امتیاز
0 پاسخ 209 بازدید
+1 امتیاز
1 پاسخ 508 بازدید
+1 امتیاز
1 پاسخ 404 بازدید
سوال شده 11 سال قبل در کامپیوتر و اینترنت توسط SAMIRA (7.1هزار امتیاز)
+1 امتیاز
0 پاسخ 393 بازدید
0 امتیاز
1 پاسخ 570 بازدید
...