|
9 | 9 |
|
10 | 10 | ## المصادقة (Authentication) |
11 | 11 | - [ ] لا تستخدم `Basic Auth` لكن استخدم المعايير القياسية للمصادقة (مثال [JWT](https://jwt.io/), [OAuth](https://oauth.net/)). |
12 | | -- [ ] لا تعيد اختراع العجلة في `المصادقة`، `توليد الرموز`، `تخزين كلمات المرور`. قم باستخدام المعايير القياسية. |
| 12 | +- [ ] لا تعد اختراع العجلة في `المصادقة`، `توليد الرموز`، `تخزين كلمات المرور`. قم باستخدام المعايير القياسية. |
13 | 13 | - [ ] استخدم `تحديد عدد المحاولات` و`الرمان من الدخول jail feature` في تسجيل الدخول. |
14 | 14 | - [ ] استخدم التشفير في كل البيانات الحساسة. |
15 | 15 |
|
16 | 16 | ### JSON Web Token) JWT) |
17 | 17 | - [ ] استخدم مفتاح عشوائي ومعقد (`JWT Secret`) لتجعل هجوم التخمين بالقوة brute forcing صعبا جدا. |
18 | | -- [ ] لا تقم باستخراج خوارزمية التشفير من محتوى رمز الـ JWT. قم بإجبار الكود على استخدام خوارزمية (`HS256` or `RS256`). |
19 | | -- [ ] اجعل مدة انتهاء الرمز (`TTL`, `RTTL`) قليلة قدر الإمكان. |
| 18 | +- [ ] لا تقم باستخراج خوارزمية التشفير من محتوى رمز الـ JWT. قم بإجبار الرمز البرمجي على استخدام خوارزمية (`HS256` or `RS256`). |
| 19 | +- [ ] اجعل مدة انتهاء الرمز (`TTL`, `RTTL`) قصيرة قدر الإمكان. |
20 | 20 | - [ ] لا تقم بتخزين أي بيانات حساسة داخل محتوى رمز الـ JWT, لأنه يمكن كشف هذه المحتويات بسهولة [easily](https://jwt.io/#debugger-io). |
21 | 21 |
|
22 | 22 | ### OAuth |
23 | | -- [ ] تحقق دائما من `redirect_uri` في كود الخادوم لتسمح فقط بقائمة محددة من الروابط. |
24 | | -- [ ] دائما حاول أن تقوم بالتبادل والرد بكود وليس بالرمز (لا تسمح `response_type=token`). |
| 23 | +- [ ] تحقق دائما من `redirect_uri` في الرمز البرمجي للخادوم لتسمح فقط بقائمة محددة من الروابط. |
| 24 | +- [ ] دائما حاول أن تقوم بالتبادل والرد برمز برمجي وليس بالرمز (لا تسمح `response_type=token`). |
25 | 25 | - [ ] استخدم متغير `state` في الرابط مع مزيج عشوائي من الحروف لتمنع هجمات الـ CSRF على عملية المصادقة الخاصة بالـ OAuth. |
26 | 26 | - [ ] حدد الصلاحية والنطاق الافتراضي scope، وقم بالتحقق منه مع كل تطبيق. |
27 | 27 |
|
|
39 | 39 | - [ ] استخدم واجهة للـ API لتستفيد من التخزين المؤقت caching وسياسات تحديد عدد الطلبات Rate Limit policies (مثال `الحصة Quota`, `التنبية في الارتفاع المفاجئ Spike Arrest`, `وتحديد عدد الطلبات المتزامنة Concurrent Rate Limit`) |
40 | 40 |
|
41 | 41 | ## المعالجة |
42 | | -- [ ] قم بفحص كل النطاقات والروابط كونهم محميين وراء مصادقة authentication لتتجنب المصادقة المكسورة broken authentication. |
| 42 | +- [ ] قم بفحص كل النطاقات والروابط للتحقق من كونهم محميين وراء مصادقة authentication لتتجنب المصادقة المكسورة broken authentication. |
43 | 43 | - [ ] يجب تجنب استخدام المعرف الخاص بالموارد. قم باستخدام `/me/orders` بدلا من `/user/654321/orders`. |
44 | 44 | - [ ] لا تقم باستخدام المعرف التلقائي auto-increment . قم باستخدام `UUID` بدلا منه. |
45 | 45 | - [ ] لو قمت بمعالجة ملفات XML, تأكد من أن معالجة entity parsing غير مفعلة لتتجنب هجمات `XXE` (XML external entity). |
46 | 46 | - [ ] لو قمت بمعالجة ملفات XML, تأكد من أن entity expansion غير مفعلة لتتجنب هجمات `Billion Laughs/XML bomb` من خلال هجوم exponential entity expansion. |
47 | 47 | - [ ] استخدم شبكات تسليم المحتوى CDN لرفع الملفات. |
48 | 48 | - [ ] لو كنت تتعامل مع حجم بيانات ضخم، استخدم عمليات منفصلة Workers , Queues لمعالجة البيانات في الخلفية والرد على المستخدم بسرعة لتجنب حجب الطلب HTTP Blocking. |
49 | | -- [ ] لا تنسى وتترك وضع التصحيح DEBUG mode في حالة التشغيل. |
| 49 | +- [ ] لا تترك وضع التصحيح DEBUG mode في حالة التشغيل. |
50 | 50 |
|
51 | 51 | ## المخرجات |
52 | 52 | - [ ] استخدم `X-Content-Type-Options: nosniff` في رأس الطلب header. |
|
59 | 59 |
|
60 | 60 | ## التكامل المستمر CI & النشر المستمر CD |
61 | 61 | - [ ] مراجعة التصميم الخاص بك والتنفيذ مع وحدة / التكامل اختبارات الاختبار unit/integration tests coverage. |
62 | | -- [ ] استخدام عملية مراجعة الكود وتجاهل الموافقة على الكود الذي قمت بكتابته. |
| 62 | +- [ ] استخدام عملية مراجعة الرمز البرمجي وتجاهل الموافقة على الرمز البرمجي الذي قمت بكتابته. |
63 | 63 | - [ ] تأكد من أن جميع مكونات الخدمات الخاصة بك يتم فحصها بشكل ثابت بواسطة برامج الفيروسات قبل إرسالها إلى الإنتاج، بما في ذلك المكتبات الخارجية وغيرها من التبعيات. |
64 | 64 | - [ ] تصميم حل التراجع عن عمليات النشر rollback. |
65 | 65 |
|
|
0 commit comments