CSRF protection

ما وظيفة CSRF بالضبط؟
ومتى يجب أن نستخدمها؟!
في django مثلا يوجد csrf_protect , csrf_exempt
متى يجب أن نستخدمها ولماذا؟

5 Likes

السلام عليكم أخي صهيب، إن شاء الله ما نكون تأخرنا عليك في الرد
ال CSRF أو Cross site request forgery (CSRF) و يعرف أيضا بـ XSRF هو عملية لخداع مستخدم مسجل دخوله في موقع معين وتقوم بجعله يقوم بعملية معينه في ذلك الموقع من مكان آخر
مثلا لنقل أن مستخدم مسجل دخوله في موقع البنك الذي عنده فيه حساب وواضع فيه أمواله Coretabs-BANK :joy:
البنك يقوم بتحويل الأموال عن طريق الرابط التالي:

GET http://coretabs-bank.com/send.do?to=XXXXX&amount=$250

سيكون يإمكان أي مخترق أن يقوم بتحويل الأموال إلى حسابه يكفي فقط أن يقوم بخداع المستخدم بإرسال رابك كهذا:

GET http://coretabs-bank.com/send.do?to=HACKER&amount=$10

يكفي فقط إدراجه في وسم الروابط هكذا
Read more!
قد تقول وهل فريق Coretabs أغبياء حتى يستخدموا الــ GET لتحويل الأموال كان يجب عليهم إستخدام POST صح؟
نفس الشيء، أسهل شيء أنك تقوم بعمل SUBMIT FORM عند تحميل صفحة HTML

<body onload="document.forms[0].submit()">
   <form action="http://coretabs-bank.com/send.do" method="POST">
     <input type="hidden" name="to" value="HACKER"/>
     <input type="hidden" name="amount" value="$10"/>
     <input type="submit" value="View my pictures!"/>
   </form>
 </body>

كما تعلم فإن أي تطبيق ويب يقوم بأخذ البيانات الموجودة في الفورم وبما أن اليوزر (الضحية) له الصلاحية للقيام بالعملية فإن هذه العملية لا شيء يمنعها من التنفيذ.

الآن إذا وجب علينا حماية عملاءنا من هذا النوع من الهجمات فكيف نقوم بذلك ؟

يُعد إجراءً جيدًا إنشاء CSRF_TOKEN فريدًا وإرساله جنبًا إلى جنب مع طلب HTTP ، وبالتالي ستتم حماية وظائف العمل وراء الخدمة المكشوفة من هذا التهديد.

هنا يمكن القول أنني أجبتك على السؤالين الأولين

نأتي الآن إلى دجانغو :hearts:
لا يوجد أحسن من أنك تقوم بإلقاء نظرة في ال docs الخاصة بهم فهي رائعه وشرحهم بسيط أيضا

هنا

وبالنسبة للــ csrf_protect و csrf_exempt فـ protect للحماية و exempt لتجاهلها فأحيانا لا يكون هناك داع لها
تجد الإجابة هنا

هنا

أتمنى أن تكون الإجابة كافية ومفهومة.
:muscle::muscle:

روابط مفيدة:

4 Likes

يعطيك العافية كفيت ووفيت

3 Likes

جميل جدا :ok_hand: بالتوفيق أخي صهيب

2 Likes