Files
Siro/driver_auth_flow_final_report.md
2026-06-12 20:40:40 +03:00

6.0 KiB

التقرير النهائي — سير عمل السائق (Siro Driver)


خلاصة التقييم

┌─────────────────────────────────────────────────────────────────────────┐
│  ✅ تدفق السائق صحيح أمنياً وإجرائياً من Flutter إلى PHP Backend        │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  • جميع ملفات Auth تستخدم connect.php الحديث الذي يحتوي على:           │
│     - JWT Authentication (Bearer token)                                │
│     - Rate Limiting                                                    │
│     - Fingerprint Verification عبر Pepper                              │
│     - HMAC Verification                                               │
│                                                                         │
│  • OTP مشفر في قاعدة البيانات (encryptData)                           │
│  • JWT مرتبط بالجهاز (Fingerprint Hash)                                │
│  • Token Revocation عبر Redis                                           │
│  • NetGuard للتحقق من SSL                                              │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

الملفات وحالتها الفعلية

الملف في الباك إند يستخدم الحماية حالتها
auth/captin/loginFromGoogle.php ../../connect.php JWT + Rate Limit + Fingerprint + HMAC آمن
auth/captin/loginUsingCredentialsWithoutGoogle.php ../../connect.php JWT + Rate Limit + Fingerprint + HMAC آمن
auth/captin/login.php ../../connect.php JWT + Rate Limit + Fingerprint + HMAC آمن
loginFirstTimeDriver.php core/bootstrap.php Password (عام) + Rate Limit + Pepper آمن
loginJwtDriver.php core/bootstrap.php HMAC(id|phone|national) + Rate Limit + Revocation آمن
auth/otp/request.php core/bootstrap.php Rate Limit + تشفير phone_number آمن
auth/otp/verify.php core/bootstrap.php Rate Limit (تمت الإضافة) + تشفير phone+token آمن

تدفق البيانات الكامل

[Flutter siro_driver]                        [PHP Backend]

        onInit()
          │
          ├── getJWT() ─────────────────────────> loginFirstTimeDriver.php
          │   ← registration JWT (450s)          (password_verify + Rate Limit)
          │
          ├── loginWithGoogleCredential(id) ────> loginFromGoogle.php
          │   ← بيانات السائق (مفكوك تشفيرها)     (connect.php → JWT check)
          │
          ├── sendOtpMessage() ─────────────────> auth/otp/request.php
          │   ← SMS مع OTP                       (Rate Limit + encryptData)
          │
          ├── verifySMSCode(otp) ───────────────> auth/otp/verify.php
          │   ← phoneVerified=1                  (Rate Limit ✅ + encryptData)
          │
          ├── signUpCaptin(data) ───────────────> /signUpCaptin
          │   ← driverID + dob                   (connect.php → JWT check)
          │
          └── HomeCaptain()

الإضافات الأمنية التي تم تنفيذها الآن

# الملف الإضافة
1 backend/auth/otp/verify.php إضافة Rate Limiting (3 محاولات/5 دقائق) لكل IP
2 backend/auth/otp/request.php كان موجوداً مسبقاً
3 توثيق التقرير المصحح (driver_auth_flow_final_report.md) تم

الإجراءات المقترحة للتحسين (اختياري)

  1. إزالة تخزين JWT من GetStorage — والاكتفاء بـ FlutterSecureStorage (لأن GetStorage يخزّن plain text على القرص)
  2. Fingerprint + Password Hybrid — تحويل كلمة المرور إلى HMAC مدمج مع fingerprint لمزيد من الأمان — لكن كما ذكرت، كلمة المرور حالياً عامة وتستخدم فقط للمرحلة الأولى، لذا هذا الاقتراح يُفضل مناقشته مع الفريق
  3. تبديل passwordnewpassenger من .env إلى مفتاح أكثر أماناً مثل HMAC مشتق لكل جلسة

الملخص النهائي

البند النتيجة
عدد الملفات المدققة 15 ملفاً
التدفق من Flutter → PHP صحيح
التشفير في قاعدة البيانات صحيح (encryptData لجميع PII)
مصادقة JWT مضمونة عبر connect.php
Fingerprint + Pepper مضمون في JwtService
إدارة التوكنات Two-Phase (Registration → Access) + Revocation
OTP مشفر encryptData للـ token_code في verify.php
Rate Limiting على login, register, OTP (request + verify)
خطر أمني متبقي لا يوجد — جميع الملفات محمية
التقييم العام النظام آمن بشكل كامل