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

تدفق Authorization Code مع PKCE

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

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

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

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

1) ما الذي يمر عبر المتصفح في التدفق؟
2) ماذا يحدث لمن يعترض رمز التفويض دون الـ verifier؟
const express = require('express');const app = express();app.use(express.json());app.use(express.urlencoded({ extended: false })); const crypto = require('crypto');let issuedChallenge = null; // العميل يحسب verifier عشوائيًّا، و challenge = sha256(verifier)app.post('/authorize', (req, res) => {  issuedChallenge = req.body.codeChallenge;       // خادم التفويض يحفظ البصمة  res.json({ code: 'AUTH_CODE_123', state: req.body.state });  // (الرمز ثابت للتوضيح)}); app.post('/token', (req, res) => {  // يتحقق أن sha256(verifier) يطابق challenge المحفوظ  const h = crypto.createHash('sha256').update(req.body.codeVerifier).digest('base64url');  if (h !== issuedChallenge)    return res.status(400).json({ error: 'PKCE فشل: المعترِض لا يملك الـ verifier' });  res.json({ accessToken: 'ACCESS_TOKEN_abc', expiresIn: 3600 });}); app.listen(3000);
3) code_challenge هو:
4) قيمة state تمنع:
5) في تطبيقات الواجهة بلا سرّ عميل نستخدم:

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

1) رمز الوصول يُسلَّم مباشرة عبر المتصفح في التدفق الآمن.
الصواب: خطأ
2) PKCE يجعل رمز التفويض المعترَض عديم القيمة وحده.
الصواب: صح
3) رمز التفويض قصير العمر ويُستخدم مرة.
الصواب: صح
4) يُستحسن كتابة تدفق OAuth يدويًّا بدل المكتبات.
الصواب: خطأ
5) التحقق من state يربط الرد ببداية صحيحة للتدفق.
الصواب: صح

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

1) البصمة المُرسَلة في بداية PKCE تسمّى code .
الإجابة: challenge
2) السرّ الذي يبقى في العميل ويُرسل عند التبديل هو code .
الإجابة: verifier
3) القيمة العشوائية ضد CSRF على التدفق هي .
الإجابة: state

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

1) code_challenge = sha256(code_verifier) بترميز base64url.
الصواب: صح
2) من يعرف code_challenge فقط يستطيع تبديل الرمز بنجاح.
الصواب: خطأ
أجب عن الأسئلة ثم اضغط «صحّح ورقتي».

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