- بواسطة x32x01 ||
في عالم البرمجة، الـ APIs هي الأعصاب اللي ماسكة التطبيق كله.
لو حصل فيها مشكلة واحدة بس، التطبيق كله ممكن يقع 💥
عشان كده API Security مش رفاهية، ده أساس أي سيستم محترم وStable.
تعالى نشوف أهم الطرق اللي تحمي بيها الـ APIs بتاعتك صح 👇
لو الـ API شغال على HTTP:
📌 من غير OAuth2، أي API كبيرة بتبقى معرضة للخطر.
الصح:
مثال (pseudo):
📌 ده بيحمي السيرفر وبيمنع الاستغلال.
الحل:
📌 كده التطوير يمشي من غير ما تكسر القديم.
📌 يقلل فرص الهجوم من مصادر عشوائية.
الصح:
مثال:
📌 ده بيمنع SQL Injection و XSS ومصايب كتير.
لو حصل فيها مشكلة واحدة بس، التطبيق كله ممكن يقع 💥
عشان كده API Security مش رفاهية، ده أساس أي سيستم محترم وStable.
تعالى نشوف أهم الطرق اللي تحمي بيها الـ APIs بتاعتك صح 👇
🔒 استخدم HTTPS دايمًا ومن غير نقاش
أول وأهم خطوة: أي Request أو Response لازم يكون مشفّر 🔐لو الـ API شغال على HTTP:
- البيانات مكشوفة
- التوكنات سهلة تتسرق
- أي هجوم Man-in-the-Middle يبقى لعبة
🪪 اعتمد على OAuth2 في المصادقة
OAuth2 هو المعيار الأشهر والأأمن لحماية الـ APIs. بيقدملك:- Access Tokens
- صلاحيات محددة (Scopes)
- تحكم في مدة التوكن
Code:
Authorization: Bearer ACCESS_TOKEN
🧬 استخدم WebAuthn في الأنظمة الحساسة
لو بتشتغل على:- بنوك
- أنظمة مالية
- بيانات حساسة جدًا
- بصمة
- Face ID
- Security Keys
🗝️ قسّم API Keys حسب الصلاحيات
غلط شائع: API Key واحد يعمل كل حاجة 😬الصح:
- Key للقراءة
- Key للكتابة
- Key للإدارة
🔍 ركّز على Authorization مش Authentication بس
إن المستخدم Logged in مش معناه إنه:- يعدّل
- يحذف
- يشوف كل الداتا
مثال (pseudo):
JavaScript:
if (!user.can('delete_post')) {
return res.status(403).send('Forbidden');
}
🚦 طبّق Rate Limiting
متسيبش أي حد يضرب الـ API بتاعك:- 1000 Request في الثانية
- Bot
- DDoS Attack
100 requests / minute / IP📌 ده بيحمي السيرفر وبيمنع الاستغلال.
🔄 اعمل API Versioning
أي تغيير صغير ممكن يبوّظ Apps شغالة بالفعل 😐الحل:
- استخدم Versions
Code:
/api/v1/users
/api/v2/users
🧱 استخدم IP Whitelisting
لو الـ API بيستخدمه:- Backend معين
- Service داخلي
📌 يقلل فرص الهجوم من مصادر عشوائية.
📚 راجع OWASP API Security Risks
قائمة OWASP API Top 10 دي كتالوج رسمي لأخطر مشاكل الـ APIs. زي:- Broken Authentication
- Broken Object Level Authorization
- Excessive Data Exposure
🚪 استخدم API Gateway
الـ API Gateway زي الحارس الشخصي 🛡️ بيعمل:- Authentication
- Rate Limiting
- Logging
- Request Filtering
- Kong
- NGINX
- AWS API Gateway
🧨 تعامل بحذر مع الـ Error Handling
غلط قاتل: ترجع stack trace للـ client 😵الصح:
- رسالة عامة
- التفاصيل تتحفظ في الـ logs بس
JSON:
{
"error": "Something went wrong"
}
🧪 فعّل Input Validation على كل حاجة
أي داتا جاية من الـ client: ❌ متثقش فيها ✔ افحصهامثال:
JavaScript:
if (!Number.isInteger(userId)) {
return res.status(400).send('Invalid input');
}
✅ الخلاصة
- الـ API هي العمود الفقري للتطبيق
- أي ثغرة فيها = خطر كبير
- الأمان مش Feature
- الأمان Design من الأول