# قائمة مراجعة أمان سيرو - التحقق من النشر **تاريخ المراجعة:** 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: ✓ (ما بعد النشر) --- ## التوقيع والموافقة **معد البقائمة:** ________________ **التاريخ:** __________ **راجع من قِبل:** ________________ **التاريخ:** __________ **موافقة الأمان:** ________________ **التاريخ:** __________ **موافقة المشروع:** ________________ **التاريخ:** __________ --- **ملحوظة:** يجب أكمال جميع المربعات المعلمة قبل نشر أي تغييرات للإنتاج.