بخصوص رمز ال csrf-token في موقع حسوب كمثال

اذا استعرضت موقع هذه الصفحة و لاحظة قيمة ال csrf-token تجد ان قيمتها تتغير عند كل تحديث للصفحة

ما السبب ؟ اقصد مالفائدة لتغييرها عند كل تحديث للصفحة ؟

و اذا اعتمدت هذه الطريقة كيف استطيع التعامل مع القيمة و هي تتغير باستمرار ؟

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

مرحباً ..

ما السبب؟ أو ما الفائدة لتغييرها ؟

للحماية من ثغرة csrf و التي تعني cross site request forgery او بالعربية تزوير الطلب عبر المواقع و للحماية من هذه الثغرة يتم تخزين token في الجلسة و إرساله مع كل نموذج form على شكل حقل مخفي و التأكد من مطابقته لل token المخزن في الجلسة session

و من بين الحلول المقترحة أيضا تخزين ال token ضمن وسم ال meta و إرساله في كل طلب ajax و التحقق منه.

إذا كنت تستخدم إطار عمل فستجد معظم إجراءات الحماية من الثغرات المشهورة قد تمت معالجتها أما إن كنت تبرمج من الصفر فعليك معالجة هذه الثغرات بنفسك

ستجد في هذا المقال شرح مفصل عن الثغرة و كيفية معالجتها :

بالتوفيق

و ما هي فائدة تغيير القيمة عند كل تحديث للصفحة ؟

bederrar أضف ردا

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

  • حسوب i/o يستخدم اطار عمل Laravel وهو ما يقوم بمعالجة أمر csrf-token وأمور الحماية الأخرى، ولكن الإفتراضي لمدة تغيير csrf-token هي مدة الجلسة وليس كل طلب في إطار العمل Laravel.

للتصحيح حسوب IO مبني باستخدام Ruby On Rails

  • ربما اختلط علي الأمر، لكن على ما أذكر أن أحد منتجاتها مبني بإطار عمل Laravel فأنا أتذكر شيء من هذا القبيل.

ولكن الإفتراضي لمدة تغيير csrf-token هي مدة الجلسة وليس كل طلب في إطار العمل Laravel.

المشكلة ان القيمة تتغير عند كل تحديث للصفحة ... و لم اجد فائدة ذلك للاسف

Hell01Cell أضف ردا

عندي Csrf-token بيتم ارساله بقيمة ثابتة لا تتغير غير مشفرة بتاتاً عبر اجاكس كيف يمكن استغلال هذا كثغرة