• 0

ما الفرق بين cookie و signed cookie في node.js

لقد حاولت إضافة ملفات تعريف الارتباط في إطار العمل express كما موجود في التوثيق من خلال:

app.use(express.cookieParser('secretKey'));

وأيضاً حاولت التالي:

res.cookie('cookieKey', 'cookieValue', {signed: true})

ولكن لم ألاحظ أي فرق من طرف المستخدم فما زالت ملفات تعريف الارتباط تظهر دون تشفير، فما هو الفرق الحقيقي مع إضافة signed: true إلى ملفات تعريف الارتباط ؟

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

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


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

ملفات تعريف الارتباط الموقّعة أو (signed) ستبقى تظهر في طرف المستخدم، إلا أنها ستكون مرفقة بتوقيع لاكتشاف في حال حاول المستخدم التعديل عليها.

حيث يتم إنشاء توقيع باستخدام HMAC لقيمة ملفات تعريف الارتباط cookie value الحالية وترميزها من خلال base64 وعندما يتم قرائتها يتم قراءة هذا التوقيع وحساب التوقيع الذي تم إنشائه لهذه القيمة في حال كانا غير متطابقين أي يوجد تعديلات على قيمتها يتم إعادة خطأ. أما في حال كنت ترغب بإخفاء محتوى ملفات تعريف الارتباط فيجب عليك إما تشفير محتوياتها أو تخزينها من طرف الخادم بدلاً من طرف المستخدم، ويوجد بعض الحزم والآليات التي يمكنك اتباعها لتحقيق ذلك في express.js  مثل cookie-session الموجودة ضمن التوثيق الرسمي في إطار العمل express، حيث يمكنك تحميلها بالشكل التالي:

npm install cookie-session

ومثال عن استخدامها من التوثيق الرسمي:

var cookieSession = require('cookie-session')
var express = require('express')

var app = express()

app.use(cookieSession({
  name: 'session',
  keys: [/* secret keys */],
  maxAge: 24 * 60 * 60 * 1000
}))

لإنشاء ملفات تعريف الارتباط التي يتم ارفاقها مع التوقيع signed:

res.cookie('key', 'value', {signed: true})

ويتم الحصول عليها وقرائتها من خلال الغرض sigendCookie الموجود ضمن الطلب req:

req.signedCookies['key']

 

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

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


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

كما تم التوضيح في التعليق السابق أنه sign لا تعني أن ال cookies ستكون مخفية ولكن سيتم إضافة توقيع إليها وهناك بعض الفروقات بين cookie و signed cookie

  • لا يمكننا تحديد ما إذا كانت البيانات التي يتم إعادتها يتم تعديلها من قبل العميل أم لا. ذلك في حالة ال cookie بينما العكس في ال signed cookie يمكننا تحديد ما إذا كانت البيانات التي يتم إعادتها يتم تعديلها من قبل العميل أم لا

  • ويضاف التوقيع كجزء من ال sigendCookie  إلى جانب بيانات sigendCookie الفعلية وهذا التوقيع معروف من ناحية السيرفر فقط

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


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

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

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

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


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

تسجيل الدخول

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


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