تقييم الدرس 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}أجب عن الأسئلة ثم اضغط «صحّح ورقتي».