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

التفويض والأدوار و OAuth

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

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

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

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

1) RBAC تعني التحكم بالوصول حسب:
2) ثغرة IDOR مثالها:
3) أين يجب أن يبقى client_secret؟
4) ما رد الخادم على طلب DELETE /api/x/1 من مستخدم دوره student؟
const express = require('express');const app = express();app.use((req, res, next) => { req.user = { role: 'student' }; next(); });const allow = (...r) => (req, res, next) => r.includes(req.user.role) ? next() : res.sendStatus(403);app.delete('/api/x/:id', allow('admin'), (req, res) => res.sendStatus(204));app.listen(3000);

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

1) إخفاء زر الحذف في الواجهة يكفي لحماية عملية الحذف.
الصواب: خطأ
2) في OAuth لا يرى تطبيقك كلمة مرور المستخدم عند المزوّد.
الصواب: صح
3) الرمز المؤقت code في OAuth يمكن استخدامه مرات كثيرة.
الصواب: خطأ

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

1) مستخدم معروف بلا صلاحية يُرد عليه بالرمز .
الإجابة: 403
2) القيمة العشوائية التي تحمي تدفق OAuth من CSRF هي .
الإجابة: state

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

1) ما جسم الاستجابة؟ GET /can/student/write

const express = require('express');const app = express();const can = { admin: ['read', 'write'], student: ['read'] };app.get('/can/:role/:act', (req, res) => {  res.json({ ok: (can[req.params.role] || []).includes(req.params.act) });});app.listen(3000);
الاستجابة الصحيحة:
{"ok":false}
أجب عن الأسئلة ثم اضغط «صحّح ورقتي».

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