طَبِّقْهاتعلّم المبدأ، وطبّقه بيدكمقرر 243 · أمن الويب
تقييم الدرس 18

التحقق من رموز JWT

أجب عن الأسئلة ثم اضغط «صحّح ورقتي» في آخر الصفحة. ← العودة إلى الدرس

أسئلة التقييم

تقييم الدرس 18: التحقق من رموز JWT. إجاباتك تُحفظ تلقائيًّا على هذا الجهاز؛ أجب ثم اضغط «صحّح ورقتي».

1السؤال الأول: اختر الإجابة الصحيحة

1) أي فحص ليس جزءًا من التحقق الكامل من JWT؟
2) ماذا يرد هذا الخادم على رمز alg=none مزوّر؟
const express = require('express');const app = express();app.use(express.json());app.use(express.urlencoded({ extended: false })); const jwt = require('jsonwebtoken');const SECRET = 'my-secret'; app.get('/issue', (req, res) =>  res.json({ token: jwt.sign({ sub: 'u1', role: 'user' }, SECRET,    { algorithm: 'HS256', expiresIn: '1h', issuer: 'rafee', audience: 'app', noTimestamp: true }) })); app.post('/check', (req, res) => {  try {    // تحقق كامل: الخوارزمية والمُصدِر والجمهور مثبّتة    const claims = jwt.verify(req.body.token, SECRET,      { algorithms: ['HS256'], issuer: 'rafee', audience: 'app' });    res.json({ sub: claims.sub, role: claims.role });  } catch (e) {    res.status(401).json({ error: 'رمز غير صالح: ' + e.message });  }}); app.listen(3000);
3) ثغرة alg=none تُمنع بـ:
4) خلط الخوارزميات يستغل:
5) أأمن تخزين لرمز الجلسة:

2السؤال الثاني: صح أم خطأ

1) يكفي التحقق من التوقيع دون exp و iss و aud.
الصواب: خطأ
2) المتحقق يجب أن يحدد الخوارزمية لا أن يأخذها من الرمز.
الصواب: صح
3) رمز alg=none بلا توقيع يجب أن يُرفض.
الصواب: صح
4) localStorage آمن لتخزين الرموز الحسّاسة.
الصواب: خطأ
5) تقصير عمر رمز الوصول يحدّ أثر سرقته.
الصواب: صح

3السؤال الثالث: أكمل الفراغات من القائمة المنسدلة

1) لمنع alg=none نمرّر إلى verify خيار .
الإجابة: algorithms
2) المطالبة التي تحدد وقت انتهاء الرمز هي .
الإجابة: exp
3) الكوكي الذي لا يصله جافاسكربت هو .
الإجابة: httpOnly

4السؤال الرابع: أسئلة عملية

1) تمرير { algorithms: ['HS256'] } إلى verify يمنع قبول alg=none.
الصواب: صح
2) فحص aud يمنع قبول رمز صدر لتطبيق آخر.
الصواب: صح
أجب عن الأسئلة ثم اضغط «صحّح ورقتي».

📝 معلم؟ أرسل ملاحظة للمؤلف عن هذا الدرس