Skip to content

Commit 5c8e647

Browse files
authored
Merge pull request #91 from netcode/master
arabic language
2 parents 2a8c8c9 + 1b61645 commit 5c8e647

1 file changed

Lines changed: 75 additions & 0 deletions

File tree

README-ar.md

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
[中文版](./README-zh.md) | [Português (Brasil)](./README-pt_BR.md) | [Français](./README-fr.md) | [한국어](./README-ko.md) | [Nederlands](./README-nl.md) | [Indonesia](./README-id.md) | [ไทย](./README-th.md) | [Русский](./README-ru.md) | [Українська](./README-uk.md) | [Español](./README-es.md) | [Italiano](./README-it.md) | [日本語](./README-ja.md) | [Deutsch](./README-de.md) | [Türkçe](./README-tr.md) | [Tiếng Việt](./README-vi.md) | [Монгол](./README-mn.md) | [हिंदी](./README-hi.md)
2+
3+
# API Security Checklist
4+
قائمة تحتوي على أهم الاحتياطات الامنية حينما تقوم بتخطيط و اختبار و اطلاق ال API الخاصة بك
5+
6+
7+
---
8+
9+
## المصادقة (Authentication)
10+
- [ ] لا تستخدم `Basic Auth` لكن استخدم المعايير القياسية للمصادقة (مثال [JWT](https://jwt.io/), [OAuth](https://oauth.net/)).
11+
- [ ] لا تعيد اختراع العجله في `المصادقة`, `توليد الرموز`, `تخزين كلمات المرور`. قم بإستخدام المعايير القياسية.
12+
- [ ] استخدم `تحديد عدد المحاولات` و `الرمان من الدخول jail feature` في تسجيل الدخول.
13+
- [ ] استخدم التشفير في كل البيانات الحساسة.
14+
15+
### JWT (JSON Web Token)
16+
- [ ] إستخدم مفتاح عشوائي و معقد (`JWT Secret`) لتجعل هجوم التخمين بالقوة brute forcing صعب جدا.
17+
- [ ] لا تقم بإستخراج خوارزمية التشفير من محتوى رمز ال JWT. قم بإجبار الكود بإستخدام خوارزمية (`HS256` or `RS256`).
18+
- [ ] إجعل مدة انتهاء الرمز (`TTL`, `RTTL`) قليلة قدر الإمكان.
19+
- [ ] لا تقم بتخزين اي بيانات حساسة داخل محتوى رمز ال JWT, لانه يمكن كشف هذه المحتويات بسهولة [easily](https://jwt.io/#debugger-io).
20+
21+
### OAuth
22+
- [ ] تحقق دائما من `redirect_uri` في كود السيرفر لتسمح فقط بقائمة محددة من الروابط.
23+
- [ ] دائما حاول ان تقولم بالتبادل و الرد بكود و ليس بالرمز (لا تسمح `response_type=token`).
24+
- [ ] إستخدم متغير `state` في الرابط مع مزيج عشوائي من الحروف لتمنع هجمات ال CSRF على عملية المصادقة الخاصة بال OAuth.
25+
- [ ] حدد الصلاحية و النطاق الافتراضي scope, و قم بالتحقق منه مع كل تطبيق.
26+
27+
## الوصول
28+
- [ ] حدد الطلبات (Throttling) لتتجنب هجوم حجب الخدمة DDoS و هجوم التخمين بالقوة brute-force.
29+
- [ ] إستخدم HTTPS على السيرفر لتتجنب هجمات التنصت على الطلبات MITM (Man In The Middle Attack).
30+
- [ ] إستخدم `HSTS` header مع ال SSL لتتجنب هجمات ال SSL Strip.
31+
32+
## الإدخال
33+
- [ ] إستخدم الوسيلة المناسبة HTTP method حسب العملية التي تريد القيام بها : `GET (للقرائة)`, `POST (إنتاج او اضافة)`, `PUT/PATCH (لإستبدال او تحديث)`, and `DELETE (لحذف سجل)`, و قم بالرد ب `405 Method Not Allowed` في حالة إذا كانت الوسيلة method غير مناسبة .
34+
- [ ] قم بالتحقق من `content-type` في رأس الطلب reuest header أو ما يسمى ب (Content Negotiation) لتسمح فقط بالتنسيقات المدعومة (مثال `application/xml`, `application/json`, إلى آخره) و قم بالرد ب `406 Not Acceptable` إذا كان التنسيق غير ذلك.
35+
- [ ] قم بالتحقق من `content-type` في محتوى الطلب نفسه posted data (مثال `application/x-www-form-urlencoded`, `multipart/form-data`, `application/json`, إلى آخره).
36+
- [ ] قم بالتحثث من مدخلات المستخدم لتتجنب الثغرات الشائعة (مثال `XSS`, `SQL-Injection`, `Remote Code Execution`, إلى آخره).
37+
- [ ] لا تستخدم اي بيانات حساسة (`credentials`, `Passwords`, `security tokens`, or `API keys`) في الرابط و لكن استخدم الطريقة القياسية وهي رأس الطلب الخاص بالمصادقة Authorization header.
38+
- [ ] إستخدم واجهة لل API ل تستفيد من التخزين المؤقت caching و سياسات تحديد عدد الطلبات Rate Limit policies (مثال `الحصة Quota`, `التنبية في الارتفاع المفاجئ Spike Arrest`, `و تحديد عدد الطلبات المتزامنة Concurrent Rate Limit`)
39+
40+
## المعالجة
41+
- [ ] قم بفحص كل النطاقات و الروابط انهم محميين وراء مصادقة authentication لتتجنب المصادقة المكسورة broken authentication.
42+
- [ ] يجب تجنب استخدام المعرف الخاص بالموارد . قم بإستخدام `/me/orders` بدلا من `/user/654321/orders`.
43+
- [ ] لا تقم بإستخدام المعرف التلقائي auto-increment . قم بإستخدام `UUID` بدلا منه.
44+
- [ ] لو انك تقوم بمعالجة ملفات XML, تأكد من ان معالجة entity parsing غير مفعلة لتتجنب هجمات `XXE` (XML external entity).
45+
- [ ] لو انك تقوم بمعالجة ملفات XML, تأكد من ان entity expansion غير مفعلة لتتجنب هجمات `Billion Laughs/XML bomb` من خلال هجوم exponential entity expansion.
46+
- [ ] إستخدم شبكات تسليم المحتوى CDN لرفع الملفات.
47+
- [ ] لو انك تتعامل مع حجم بيانات ضخم, إستخدم عمليات منفصلة Workers , Queues لمعالجة البيانات في الخلفية و الرد على المستخدم بسرعه لتجنب حجب الطلب HTTP Blocking.
48+
- [ ] لا تنسى و تترك وضع التصحيح DEBUG mode في حالة التشغيل.
49+
50+
## المخرجات
51+
- [ ] إستخدم `X-Content-Type-Options: nosniff` في رأس الطلب header.
52+
- [ ] إستخدم `X-Frame-Options: deny` في رأس الطلب header.
53+
- [ ] إستخدم `Content-Security-Policy: default-src 'none'` في رأس الطلب header.
54+
- [ ] إحذف الرؤوس headers التي تدل عليك - `X-Powered-By`, `Server`, `X-AspNet-Version` إلى آخره.
55+
- [ ] إجبر إرسال `content-type` مع الرد, لو انك تقوم بالرد بمحتويات من توع `application/json` فم بالرد ب`content-type` `application/json`.
56+
- [ ] لا تقم بالرد بمعلومات و بيانات حساسة مثل `credentials`, `Passwords`, `security tokens`.
57+
- [ ] قم بالرد بكود حالة صحيح status code طبقا للعملية التي تقوم بها. (مثال `200 OK`, `400 Bad Request`, `401 Unauthorized`, `405 Method Not Allowed`, إلى آخره).
58+
59+
## التكامل المستمر CI & النشر المستمر CD
60+
- [ ] مراجعة التصميم الخاص بك والتنفيذ مع وحدة / التكامل اختبارات الاختبار unit/integration tests coverage.
61+
- [ ] استخدام عملية مراجعة الكود وتجاهل الموافقة على الكود الذي قمت بكتابته.
62+
- [ ] تأكد من أن جميع مكونات الخدمات الخاصة بك يتم فحصها بشكل ثابت بواسطة برامج الفيروسات قبل ارسالها إلى الإنتاج، بما في ذلك المكتبات الخارجية وغيرها من التبعيات.
63+
- [ ] تصميم حل التراجع عن عمليات النشر rollback.
64+
65+
66+
---
67+
68+
## أنظر أيضا:
69+
- [yosriady/api-development-tools](https://github.com/yosriady/api-development-tools) - مجموعة من الادوات و المصادر لبناء RESTful HTTP+JSON APIs.
70+
71+
72+
---
73+
74+
# المشاركة
75+
لا تتردد في المساهمة عن طريق اخذ نسخة من هذه القائمة fork ، وإجراء بعض التغييرات، وتقديم طلبات المراجعة pull request. أي أسئلة الرجاء مراسلتنا على البريد الإلكتروني `team@shieldfy.io`.

0 commit comments

Comments
 (0)