You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<h4 dir='rtl' align='right'>السيناريو الثاني : </h4>
47
47
48
-
We have an application with basic CRUD functionality for operations with
49
-
bookings. An attacker managed to identify that NoSQL injection might be possible
50
-
through `bookingId` query string parameter in the delete booking request. This
51
-
is how the request looks like: `DELETE /api/bookings?bookingId=678`.
52
48
53
-
The API server uses the following function to handle delete requests:
49
+
<p dir='rtl' align='right'> تطبيق للحجوزات قائم على وظائف CRUD، حيث قام المهاجم بالعديد من محاولات الفحص التي مكنته من معرفة اللغة المستخدمة في المفسر وهي NoSQL والتي استطاع من خلالها حقن المعرف الفريد للحجوزات bookingid باوامر من اجل مسح وحذف الحجوزات من خلال استخدام المسار التالي: DELETE /api/bookings?bookingId=678
54
50
51
+
<p dir='rtl' align='right'> حيث قام المهاجم بإرسال الطلب من خلال واجهة برمجة التطبيقات API لتعامل مع طلب الحذف الامر التالي:
52
+
55
53
```javascript
56
54
router.delete('/bookings', async function (req, res, next) {
<h4dir='rtl'align='right'>السيناريو الثاني : </h4>
67
-
68
-
<pdir='rtl'align='right'> تطبيق للحجوزات قائم على وظائف CRUD، حيث قام المهاجم بالعديد من محاولات الفحص التي مكنته من معرفة اللغة المستخدمة في المفسر وهي NoSQL والتي استطاع من خلالها حقن المعرف الفريد للحجوزات bookingid باوامر من اجل مسح وحذف الحجوزات من خلال استخدام المسار التالي: DELETE /api/bookings?bookingId=678
69
-
<pdir='rtl'align='right'> حيث قام المهاجم بإرسال الطلب من خلال واجهة برمجة التطبيقات API لتعامل مع طلب الحذف الامر التالي:
70
-
64
+
<pdir='rtl'align='right'> قام المهاجم باعتراض الطلبات الخاصة بالمعرف الفريد bookinigid وقام بتغير طريقة الاستعلام والتي أدت الى حذف حجز مستخدم اخر.
71
65
```
72
66
DELETE /api/bookings?bookingId[$ne]=678
73
67
```
74
68
75
-
## How To Prevent
69
+
<h4dir='rtl'align='right'>كيف أمنع هذه الثغرة؟ </h4>
76
70
77
-
Preventing injection requires keeping data separate from commands and queries.
78
-
79
-
* Perform data validation using a single, trustworthy, and actively maintained
80
-
library.
81
-
* Validate, filter, and sanitize all client-provided data, or other data coming
82
-
from integrated systems.
83
-
* Special characters should be escaped using the specific syntax for the target
84
-
interpreter.
85
-
* Prefer a safe API that provides a parameterized interface.
86
-
* Always limit the number of returned records to prevent mass disclosure in case
87
-
of injection.
88
-
* Validate incoming data using sufficient filters to only allow valid values for
89
-
each input parameter.
90
-
* Define data types and strict patterns for all string parameters.
71
+
<pdir='rtl'align='right'> لمنع عمليات الحقن انت بحاجة الى فصل الأوامر والتعليمات البرمجية عن الاستعلامات بشكل صحيح و امن.
91
72
73
+
<pdir='rtl'align='right'>▪️ قم بإجراء التحقق من صحة البيانات المدخلة باستخدام مكتبة موحدة وامنه وموثوقة ويتم صيانتها بشكل دوري.
74
+
<pdir='rtl'align='right'>▪️ التحقق من صحة جميع البيانات المقدمة من المستخدم أو غيرها من البيانات الواردة من الأنظمة المتكاملة وتصفيتها.
75
+
<pdir='rtl'align='right'>▪️ يجب تخطي الأحرف الخاصة باستخدام الصيغة المحددة المفسر المستهدف.
76
+
<pdir='rtl'align='right'>▪️ قم بتوفير بيئة امنه لواجهة برمجة التطبيقات API ذات استعلامات واضحة.
77
+
<pdir='rtl'align='right'>▪️ حدد دائمًا عدد السجلات التي يتم إرجاعها لمنع تسريب البيانات للجميع في حالة نجاح عملية الحقن.
78
+
<pdir='rtl'align='right'>▪️ تحقق من صحة البيانات الواردة باستخدام عوامل تصفية كافية للسماح فقط بالقيم الصالحة لكل استعلام تم إدخاله.
79
+
<pdir='rtl'align='right'>▪️ تعريف بشكل واضح ومحدد ماهي الانماط و انواع البيانات المستخدمة في الاستعلامات
92
80
## References
93
81
94
-
### OWASP
95
-
96
-
*[OWASP Injection Flaws][1]
97
-
*[SQL Injection][2]
98
-
*[NoSQL Injection Fun with Objects and Arrays][3]
99
-
*[Command Injection][4]
82
+
<h4dir='rtl'align='right'>المراجع : </h4>
100
83
101
-
### External
84
+
<h4dir='rtl'align='right'>المصادر الخارجية : </h4>
0 commit comments