Update: 2026-06-16 17:47:17

This commit is contained in:
Hamza-Ayed
2026-06-16 17:47:19 +03:00
parent 49899da6b2
commit b516fbc4ed
96 changed files with 6073 additions and 3187 deletions

View File

@@ -0,0 +1,333 @@
<div dir="rtl">
# قائمة مراجعة أمان سيرو - التحقق من النشر
**تاريخ المراجعة:** 16 يونيو 2026
**نطاق القائمة:** جميع أنظمة سيرو
**الغرض:** التحقق من تطبيق جميع إصلاحات الأمان
---
## الجزء 1: إصلاحات الأمان الحرجة (يجب أن تكتمل قبل النشر)
### ✅ إصلاح تشفير IV الثابت
- [ ] تم تعديل `backend/encrypt_decrypt.php` لتوليد IV عشوائي
- [ ] تم التحقق من توليد IV بـ 16 بايت عشوائية
- [ ] يتم ضمّ IV مع النص المشفر قبل base64_encode
- [ ] تم اختبار الفك (نفس النص الواضح ينتج نصوص مشفرة مختلفة)
- [ ] تم إعادة تشفير جميع البيانات الموجودة في قاعدة البيانات
- [ ] تم التحقق من أن جميع الأرقام المشفرة مختلفة الآن
- [ ] تم تسجيل عملية الترحيل الكاملة
- [ ] تم إجراء نسخة احتياطية قبل الترحيل
### ✅ تأمين نقاط نهاية محفظة الدفع
- [ ] تم تعطيل `add.php` حتى يتم الإصلاح النهائي
- [ ] تم إضافة مصادقة JWT إلى `add.php`
- [ ] تم إضافة فحص التفويض (مسؤول فقط)
- [ ] تم إضافة تحديد السرعة (حد أقصى للمعاملات)
- [ ] تم إضافة التحقق من المبلغ (1-10,000 فقط)
- [ ] تم إضافة تسجيل التدقيق للمعاملات
- [ ] تم اختبار الرفض للمستخدمين غير المصرح لهم
- [ ] تم تعطيل `addFromAdmin.php` حتى يتم الإصلاح النهائي
- [ ] تم إضافة مصادقة JWT إلى `addFromAdmin.php`
- [ ] تم استبدال مفتاح API الثابت بـ JWT
### ✅ نشر نقاط نهاية HTTPS آمنة فقط
- [ ] تم استبدال نقاط نهاية HTTP بـ HTTPS في `functions.php`
- [ ] تم إضافة تثبيت الشهادة (Certificate Pinning)
- [ ] تم اختبار الاتصال عبر HTTPS
- [ ] تم التحقق من أن اتصالات HTTP مرفوضة
- [ ] تم تحديث تطبيقات الهاتف لاستخدام HTTPS فقط
---
## الجزء 2: تحديثات المصادقة والمصادقة
### ✅ تطبيق المصادقة متعددة العوامل (MFA)
- [ ] تم إضافة التحقق من بصمة الجهاز (الحالي)
- [ ] تم إضافة التحقق من OTP عبر SMS
- [ ] تم إضافة رموز الخادم
- [ ] تم تكوين حد أدنى من عاملين للمصادقة
- [ ] تم اختبار مسار تسجيل دخول MFA كاملاً
- [ ] تم اختبار فشل المصادقة بعامل واحد فقط
- [ ] تم إنشاء سجلات MFA للتدقيق
### ✅ إصلاح توليد كلمات المرور
- [ ] تم تغيير توليد كلمات المرور من البريد الإلكتروني إلى عشوائية
- [ ] تم التحقق من توليد كلمات مرور عشوائية قوية (32 حرف+)
- [ ] تم إضافة إرسال كلمات المرور عبر SMS/البريد الآمن
- [ ] تم فرض تغيير كلمة المرور عند أول تسجيل دخول
- [ ] تم اختبار تسجيل دخول أول مرة
- [ ] تم إنشاء سياسة كلمات مرور قوية (14+ حرف، أحرف كبيرة/صغيرة/أرقام/رموز)
### ✅ تأمين رموز JWT
- [ ] تم التحقق من أن جميع رموز JWT لها انتهاء صلاحية
- [ ] تم تعيين فترة انتهاء الصلاحية إلى ساعة واحدة (توازن الأمان)
- [ ] تم تطبيق رموز التحديث (refresh tokens) مع انتهاء صلاحية لأطول مدة
- [ ] تم التحقق من توقيع JWT على الخادم
- [ ] تم اختبار رفض الرموز المنتهية الصلاحية
- [ ] تم اختبار رفض الرموز المعدلة
---
## الجزء 3: تأمين قاعدة البيانات
### ✅ اختبار SQL Injection
- [ ] تم تدقيق جميع استعلامات SQL في `functions.php`
- [ ] تم تدقيق جميع استعلامات SQL في ملفات `auth/`
- [ ] تم تدقيق جميع استعلامات SQL في ملفات `ride/`
- [ ] تم استبدال جميع الاستعلامات بالاستعدادات (Prepared Statements)
- [ ] تم اختبار UNION injection - النتيجة: فشل الهجوم ✓
- [ ] تم اختبار Boolean injection - النتيجة: فشل الهجوم ✓
- [ ] تم اختبار Time-based injection - النتيجة: لا يوجد تأخير ✓
- [ ] تم اختبار Error-based injection - النتيجة: بدون أخطاء قاعدة بيانات ✓
### ✅ تحديد السرعة على قاعدة البيانات
- [ ] تم تطبيق تحديد السرعة على استعلامات البحث
- [ ] تم تطبيق تحديد السرعة على استعلامات التحديث
- [ ] تم التحقق من أن الاستعلامات المفرطة مرفوضة
- [ ] تم إنشاء سجلات محاولات تجاوز تحديد السرعة
### ✅ نسخ احتياطي وإعادة كارثة
- [ ] تم إعداد النسخ الاحتياطية اليومية
- [ ] تم اختبار استعادة من نسخة احتياطية
- [ ] تم التحقق من سرية النسخ الاحتياطية (تشفيرها)
- [ ] تم إعداد خطة استعادة الكارثة
- [ ] تم توثيق نقاط استعادة RTO/RPO
---
## الجزء 4: أمان التطبيقات المحمولة
### ✅ تقليل الأذونات (Android)
- [ ] تم تقليل `ACCESS_BACKGROUND_LOCATION` إلى `ACCESS_FINE_LOCATION` فقط
- [ ] تم إزالة `WRITE_EXTERNAL_STORAGE` إذا لم تكن مطلوبة
- [ ] تم إزالة `SYSTEM_ALERT_WINDOW` إذا لم تكن مطلوبة
- [ ] تم التحقق من طلب الأذونات في وقت التشغيل فقط
- [ ] تم إضافة تبريرات المستخدم لكل أذن
### ✅ تحديثات المكتبات
- [ ] تم تحديث `http` من 1.2.2 إلى أحدث إصدار (2.0+)
- [ ] تم تحديث `firebase_core` إلى آخر إصدار مستقر
- [ ] تم تحديث `encrypt` إلى آخر إصدار
- [ ] تم تحديث `webview_flutter` إلى آخر إصدار
- [ ] تم فحص جميع المكتبات الأخرى للثغرات (pub.dev)
- [ ] تم اختبار التطبيق بعد التحديثات
### ✅ تثبيت الشهادة في تطبيقات Flutter
- [ ] تم الحصول على شهادة الخادم الصحيحة
- [ ] تم حساب hash SHA-256 للشهادة
- [ ] تم تطبيق Certificate Pinning في الكود
- [ ] تم اختبار الاتصال - النجاح ✓
- [ ] تم اختبار شهادة وهمية - الفشل ✓
### ✅ إزالة رموز التصحيح
- [ ] تم إزالة `print()` و `debugPrint()` من رمز الإنتاج
- [ ] تم التحقق من عدم وجود `debugMode = true`
- [ ] تم إزالة رموز التطوير/الاختبار المؤقتة
- [ ] تم إزالة معلومات الخادم الحساسة من الثوابت
---
## الجزء 5: الأمان في التطبيق الويب
### ✅ رؤوس الأمان
- [ ] تم تطبيق `Strict-Transport-Security` (HSTS)
- [ ] تم تطبيق `X-Frame-Options: DENY`
- [ ] تم تطبيق `X-Content-Type-Options: nosniff`
- [ ] تم تطبيق `Content-Security-Policy`
- [ ] تم تطبيق `X-XSS-Protection: 1; mode=block`
- [ ] تم تطبيق `Referrer-Policy: strict-origin-when-cross-origin`
### ✅ حماية CSRF
- [ ] تم تطبيق رموز CSRF على جميع نماذج POST
- [ ] تم التحقق من رموز CSRF على جميع نقاط النهاية
- [ ] تم اختبار هجوم CSRF - النتيجة: فشل الهجوم ✓
### ✅ معالجة الأخطاء الآمنة
- [ ] تم التحقق من عدم إظهار تتبع المكدس في الإنتاج
- [ ] تم عدم الكشف عن أسماء الجداول/الأعمدة في الأخطاء
- [ ] تم عدم الكشف عن الإصدارات/المكتبات المستخدمة
- [ ] تم إنشاء صفحات خطأ عامة (404, 500, etc.)
---
## الجزء 6: إدارة الأسرار
### ✅ متغيرات البيئة
- [ ] تم إنشاء ملف `.env` آمن
- [ ] تم إضافة `.env` إلى `.gitignore`
- [ ] تم التحقق من عدم اختيار `.env` في المستودع
- [ ] تم استخدام `load_env.php` بشكل صحيح
- [ ] تم تشفير حساسية متغيرات البيئة
### ✅ مفاتيح التشفير
- [ ] تم تخزين مفاتيح التشفير في `.env` أو نظام إدارة الأسرار
- [ ] تم عدم وضع مفاتيح في الرمز المصدري
- [ ] تم تدوير مفاتيح التشفير (تحديثها بانتظام)
- [ ] تم إنشاء نسخ احتياطية آمنة من المفاتيح
### ✅ مفاتيح API
- [ ] تم تطبيق Scopes على مفاتيح API (أذونات محدودة)
- [ ] تم تحديد عمر مفاتيح API
- [ ] تم إضافة تدوير مفاتيح API
- [ ] تم حذف المفاتيح القديمة غير المستخدمة
- [ ] تم تسجيل مفاتيح API المستخدمة
---
## الجزء 7: المراقبة والتسجيل
### ✅ تسجيل التدقيق
- [ ] تم تسجيل جميع محاولات تسجيل الدخول
- [ ] تم تسجيل جميع تغييرات المحفظة
- [ ] تم تسجيل جميع محاولات الوصول غير المصرح
- [ ] تم تسجيل جميع تعديلات الحساب
- [ ] تم حماية سجلات التدقيق من التلاعب
### ✅ المراقبة والإنذارات
- [ ] تم إعداد تنبيهات لمحاولات تسجيل دخول متعددة
- [ ] تم إعداد تنبيهات لمعاملات مريبة
- [ ] تم إعداد تنبيهات لرفع أخطاء SQL
- [ ] تم إعداد تنبيهات لانتهاكات تحديد السرعة
- [ ] تم إنشاء لوحة معلومات للمراقبة
---
## الجزء 8: الامتثال والتوثيق
### ✅ سياسات الخصوصية
- [ ] تم مراجعة سياسة الخصوصية الحالية
- [ ] تم تحديثها لتعكس ممارسات الأمان الجديدة
- [ ] تم إضافة معلومات الاحتفاظ بالبيانات
- [ ] تم إضافة حقوق المستخدم (GDPR/CCPA)
- [ ] تم إضافة معلومات الاتصال (DPO)
### ✅ شروط الخدمة
- [ ] تم تحديث شروط الخدمة
- [ ] تم إضافة شرط أمان المحفظة
- [ ] تم إضافة مسؤولية المستخدم عن كلمات المرور
- [ ] تم إضافة إخلاء المسؤولية عن MFA
### ✅ التوثيق
- [ ] تم توثيق جميع إصلاحات الأمان
- [ ] تم توثيق إجراءات التشغيل (Runbooks)
- [ ] تم توثيق خطة الاستجابة على الحوادث
- [ ] تم توثيق سياسة الكشف عن الثغرات
---
## الجزء 9: اختبار نهائي شامل
### ✅ اختبار الأمان قبل النشر
- [ ] تم إجراء مسح ثابت بـ Semgrep على جميع الملفات
- [ ] تم إجراء فحص ديناميكي بـ Burp Suite
- [ ] تم اختبار OWASP Top 10 (تعطل جميع الاختبارات)
- [ ] تم اختبار الأداء (بدون اختناقات أمنية جديدة)
- [ ] تم اختبار الاستعادة من الفشل
### ✅ اختبار الانحدار
- [ ] تم اختبار جميع ميزات تسجيل الدخول
- [ ] تم اختبار جميع ميزات المحفظة
- [ ] تم اختبار جميع ميزات الركوب
- [ ] تم اختبار جميع واجهات برمجية API
- [ ] تم اختبار تطبيقات الهاتف على أجهزة متعددة
### ✅ اختبار الأداء
- [ ] تم قياس وقت استجابة API (هدف: <100 مللي ثانية)
- [ ] تم قياس الحمل على المحفظة (هدف: 1000+ معاملة/ثانية)
- [ ] تم قياس استهلاك الذاكرة (بدون تسرب)
- [ ] تم اختبار مع 10,000+ مستخدم متزامن
---
## الجزء 10: خطة ما بعد النشر
### ✅ المرحلة 1: الساعات الأولى
- [ ] تم مراقبة السجلات في الوقت الفعلي
- [ ] تم مراقبة الأخطاء في الوقت الفعلي
- [ ] تم مراقبة الأداء في الوقت الفعلي
- [ ] تم تعيين فريق للتعامل مع الحوادث
- [ ] تم التحضير للعودة إلى الإصدار السابق إذا لزم الأمر
### ✅ المرحلة 2: اليوم الأول
- [ ] تم التحقق من عدم وجود أخطاء أمنية في السجلات
- [ ] تم التحقق من عدم وجود انتهاكات محاولة
- [ ] تم التحقق من الأداء مقبولة
- [ ] تم تعطيل النسخة السابقة إذا كانت تشغل الإنتاج
- [ ] تم إنشاء تقرير ما بعد النشر
### ✅ المرحلة 3: الأسبوع الأول
- [ ] تم مراجعة جميع السجلات
- [ ] تم تحليل أي مشاكل حدثت
- [ ] تم إنشاء خطة لمعالجة المشاكل
- [ ] تم التحقق من الامتثال التنظيمي
- [ ] تم إصدار بيان الأمان للمستخدمين (اختياري)
---
## ملخص حالة الإصلاح
**يتطلب قبل النشر (حرج - يجب أن تكون 100%):**
- [ ] الجزء 1: ✓ (إصلاحات حرجة)
- [ ] الجزء 2: ✓ (مصادقة)
- [ ] الجزء 3: ✓ (قاعدة البيانات)
**مطلوب قبل النشر (عالي - يجب أن يكون 90%+):**
- [ ] الجزء 4: ✓ (الهاتف المحمول)
- [ ] الجزء 5: ✓ (الويب)
- [ ] الجزء 6: ✓ (الأسرار)
**قبل إعلان الإصدار (متوسط - يجب أن يكون 80%+):**
- [ ] الجزء 7: ✓ (المراقبة)
- [ ] الجزء 8: ✓ (الامتثال)
- [ ] الجزء 9: ✓ (الاختبار)
- [ ] الجزء 10: ✓ (ما بعد النشر)
---
## التوقيع والموافقة
**معد البقائمة:** ________________ **التاريخ:** __________
**راجع من قِبل:** ________________ **التاريخ:** __________
**موافقة الأمان:** ________________ **التاريخ:** __________
**موافقة المشروع:** ________________ **التاريخ:** __________
---
**ملحوظة:** يجب أكمال جميع المربعات المعلمة قبل نشر أي تغييرات للإنتاج.
</div>