اذهب إلى المحتوى

السؤال

نشر

بخصوص ثغرة csrf ؟

أجد ملف لأختبار أختراق الثغرة علي موقع exploit-db  التابع اليKali Linux وهو يستخدم ملف html وبعض دوال جافا سكربت لتوليد token ورفع صورة الي الموقع المخترق .

الاصدار Laravel Framework 8.70.1

بتاريخ Date: 14/11/2021

كيف اتاكد من ان هذه الثغرة تم اغلاقها والثغرات عموما اثناء العمل علي سكربت لارافيل وما هي الثغرات الشائعة مثل هذة الثغرة .

 

 

Recommended Posts

  • 2
نشر

ثغرات CSRF هي واحدة من بين المفاهيم التي تنتبه لارافيل الى معالجتها والعمل عليها، وهي اختصار ل cross site request forgeries أو عمليات تزوير الطلبات عبر المواقع. ولفهمها على نحو جيد لنقم بطرح المثال التالي: 

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

/user/email

يقبل طلب POST لتغيير عنوان البريد الإلكتروني للمستخدم المصادق عليه. حيث يتوقع هذا المسار أن يحتوي حقل إدخال البريد الإلكتروني على عنوان البريد الإلكتروني الذي يرغب المستخدم في البدء في استخدامه. وهذا هو الطبيعي.

بدون حماية CSRF سيمكن لأي تطبيق على الانترنت الوصول الى نقطة الوصول هاته وسيكفيه فقط جلب اي مستخدم مستهدف الى هذا الموقع الضار لارسال طلب POST مزيف وتغيير بريده الالكتروني والوصول الى بياناته في تطبيقك. ولفعل هذا تقوم لارافيل بفحص كل الطلبات وتمييز تلك التي يرسلها تطبيقك على الويب عن تلك التي لا تخصك.

يُنشئ لارافيل token او رمزا مميزا لكل جلسة مستخدم نشطة يديرها التطبيق الخاص بك. يتم استخدام هذا الرمز المميز للتحقق من أن المستخدم المصادق عليه هو الشخص الذي يقوم بالفعل بتقديم الطلبات إلى التطبيق. ويتم ذلك اما عن طريق تعريف حقل هاته السلسلة النصية داخل نموذج ما أو عن طريق استعمال تعليمة blade يخصصها لارافيل لهذا: 

<form method="POST" action="/profile">
    @csrf
 
    <!-- مكافئ ل... -->
    <input type="hidden" name="_token" value="{{ csrf_token() }}" />
</form>

 

  • 1
نشر

يعطيك العافية أخ محمود 

بداية في Laravel Framework هناك directive خاصة بثغرة csrf ، توضع في كل form بغض النظر انت مستخدم اي method بال form ، في حال انك نسيت تضع هاد ال directive مباشرة رح يجي رسالة خطأ عند ارسال البيانات ، اي بمعنى انه لا يمكنك ارسال اي بيانات بدون هاد  ال Directive ، ال directive بنشأ hidden input بداخله قيمة ال token ، وهيك بيكون ال laravel محمي من ثغرات ال csrf

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...