• 0

هل مكتبة csurf تقوم بمقارنة التوكن القادم من المستخدم بالذي تم ارساله لها

السلام عليكم

هل المكتبة تقوم بمقارنة التوكن القادم من المستخدم بالذي تم ارساله له ؟

ام يجب علي حفظ التوكن المنشئ في كل مره ومقارنته بنفسي ؟

علماً اني استخدمها في spa

وكيف يمكن تغيير خيارات الكوكيز في المكتبة بحيث اعدل key او httponly وغيرها.

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1
  • تقوم المكتبة بإنشاء وإرسال التوكن للزبون وعند إرسال الزبون لطلب يجب ان يحتوي على التوكن المرسلة من المخدم، وتقوم المكتبة بالتحقق منها هل هي مولدة من مخدمك أم لا (دون الحاجة لتخزين واسترداد أي توكن)
  • بما انك تستخدم SPA يمكنك ارسال اتوكن مع ال Cookie للمتصفح عندما يطلب الموقع، وبذلك سيقوم المتصفح بارسال كل ال Cookie التي استلمها مع كل طلب يقوم به تلقائيا بدون الحاجة لأن تبرمج ذلك يدويا كالتالي 
app.all('*', function (req, res) {
  res.cookie('XSRF-TOKEN', req.csrfToken()) // تعيين التوكن في الـ Cookie
  
  ... // نقوم الآن بإرسال ملفات الموقع 
})

 

  • يمكنك تعديل خصائص ال Cookie بتمرير غرض عوضًا عن true كالتالي
csrf({
  cookie: {
    key: '...', //اسم ال Cookie
    httpOnly: true, // تفعيل httpOnly
  }
})

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1
بتاريخ 9 ساعات قال مضحي Modhy:

كيف يتم هذا التحقق من قبل المكتبة ؟

تستخدم المكتبة داخليا مكتبة csrf وهي تتولى عملية توليد التوكن والتحقق منها باستخدام ال Hashing

بتاريخ 9 ساعات قال مضحي Modhy:

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

إذا كنت تستخدم Angular فهو سيتعرف تلقائيا على ال Cookie بالاسم "XSRF-TOKEN" ويقوم بارسالها مع كل طلب لاحق عند توليد الطلبات (يمكنك تجاهل هذه الطريقة إذا كنت تستخدم منصة أو مكتبة أخرى)

بتاريخ 9 ساعات قال مضحي Modhy:

وررمز اخر باسم _csrf لا تتغير قيمته نهائياً

هذا هو الرمز الافتراضي التي ترسله المكتبة وفيه التوكن المولدة يمكنك كما أشرت سابقًا تغيير اسم هذا الرمز اذا أردت عن طريق 

csrf({
  cookie: {
    key: '...', // اسم الرمز الافتراضي
  }
})

 

تمّ تعديل بواسطة Hassan Hedr
1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0
بتاريخ 11 ساعات قال Hassan Hedr:

وتقوم المكتبة بالتحقق منها هل هي مولدة من مخدمك أم لا (دون الحاجة لتخزين واسترداد أي توكن)

كيف يتم هذا التحقق من قبل المكتبة ؟

بتاريخ 11 ساعات قال Hassan Hedr:

res.cookie('XSRF-TOKEN', req.csrfToken()) // تعيين التوكن في الـ Cookie

عند ارسال التوكن بهذه الطريقة يكون في الكوكيز رمزان، هذا الذي ارسلته وررمز اخر باسم _csrf لا تتغير قيمته نهائياً !!!

لماذا الرمز الثاني ؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن