docs: update siro audit documentation with recent findings
This commit is contained in:
@@ -30,8 +30,8 @@
|
||||
| S2 حجز الرصيد | ✅ **مُصلَح** | `beginTransaction` + `SELECT … FOR UPDATE` + حالة `payout_reserved` + `rollBack` |
|
||||
| S3 رسم 3500 | ✅ **مُصلَح** | الرقم اختفى من مسار السحب كلياً |
|
||||
| S6 OTP على السحب | ✅ **مُصلَح** | `request_payout.php:28,60–72` — OTP إلزامي ويُتحقق من `token_verification_driver` |
|
||||
| **S4 معاملة في الإنهاء** | 🔴 **ما زال مفتوحاً** | `finalize_payout.php` فيه **صفر `beginTransaction`** مقابل ~6 كتابات متتابعة. الاستثناء يُرمى بلا تراجع → فشل في الخطوة 5 يترك محفظة السائق مخصومة و`siroWallet` بلا قيد عمولة |
|
||||
| **S5 `varchar(10)`** | 🔴 **ما زال مفتوحاً** | `payment_server/WalletDB.sql:121` + `schema_primary.sql:1486` + `schema_ride.sql:1388` |
|
||||
| **S4 معاملة في الإنهاء** | ✅ **مُصلَح (2026-07-24)** | `finalize_payout.php` — الكتابات 2–6 داخل `beginTransaction`/`commit` واحدة، مع `rollBack` في `catch`. فُحصت أثناء الإصلاح: `$encryptionHelper` كان يُستعمل داخل الدالة بلا `global` (متغيّر غير مُعرَّف في نطاق الدالة) → كل استدعاء كان يفشل عند الخطوة 1 قبل أي كتابة. أُصلح بإضافة `global $encryptionHelper;` |
|
||||
| **S5 `varchar(10)`** | ✅ **مُصلَح (2026-07-24)** | `driverWallet`/`siroWallet` في `WalletDB.sql` + `seferWallet` (جدول ثالث لم يكن مذكوراً صراحة، وُجد أثناء الإصلاح) في `schema_primary.sql` + `schema_ride.sql` (نسختان) ← `DECIMAL(12,3)`. هجرتان في `payment_server/migrations/` و`backend/migrations/`. **لم يُصلَح:** `backend/ride/seferWallet/add.php:28` يُدخل `$amount` بلا `is_numeric()` — بند منفصل جديد |
|
||||
| **S7 الجدولان** | 🟡 **ما زال مفتوحاً** | `driver_withdrawal_requests` قائم بجانب `payout_requests` (`WalletDB.sql:132`) |
|
||||
|
||||
#### ✅ S18 — ليست مشكلة (توضيح تصميمي، 2026-07-24)
|
||||
@@ -47,7 +47,7 @@ UPDATE payments SET isGiven = TRUE WHERE driverID = :driverId AND isGiven = FALS
|
||||
|
||||
الافتراض المقيِّد: النظام يفرض السحب الكامل فقط. إذا تغيّر هذا لاحقاً (السماح بسحب جزئي)، عندها يجب ربط `payments` بـ `payout_id`.
|
||||
|
||||
> ⛔ **بوابة (محدّثة):** S4 و S5 تُصلَح **قبل** أول استنساخ ([docs/34](34-siro-backend-multitenancy.md) §7).
|
||||
> ✅ **البوابة اجتيزت (2026-07-24):** S4 و S5 مُصلَحان. **بند جديد قبل أول استنساخ:** إضافة `is_numeric($amount)` في `backend/ride/seferWallet/add.php` — لم يكن جزءاً من S4/S5 الأصليين، اكتُشف أثناء إصلاحهما.
|
||||
|
||||
## المصادقة وكلمة المرور (`auth/`)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user