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

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

Bassel Jhr

السؤال

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

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

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

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

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

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

Recommended Posts

  • 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']

 

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

  • 0

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

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

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

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...