Update: 2026-08-07 04:35:28
This commit is contained in:
+21
-2
@@ -47,10 +47,29 @@ $role = $decoded->role ?? 'passenger';
|
||||
//
|
||||
// نقاط تسجيل الدخول (Admin/auth/*, jwtService.php) لا تستدعي connect.php
|
||||
// أصلاً، فلا تتأثر بهذه البوّابة ولا يمكن أن تُقفل على نفسها.
|
||||
$adminDir = realpath(__DIR__ . '/Admin');
|
||||
//
|
||||
// 2026-08-07: وُسِّعت البوّابة لتشمل serviceapp/ أيضاً. كان 34 من 39 ملفاً
|
||||
// هناك بلا أي فحص دور — بينها getDriverByPhone و getPassengersByPhone و
|
||||
// update_complaint — أي أن أي حامل JWT صالح (راكب عادي) يقرأ بيانات
|
||||
// السائقين والركّاب ويغلق الشكاوى. تحققنا أن siro_rider و siro_driver لا
|
||||
// يستدعيان أي نقطة تحت serviceapp/، فالإغلاق لا يكسر تطبيقات الجوال.
|
||||
$gatedDirs = array_filter([
|
||||
realpath(__DIR__ . '/Admin'),
|
||||
realpath(__DIR__ . '/serviceapp'),
|
||||
]);
|
||||
$script = realpath($_SERVER['SCRIPT_FILENAME'] ?? '');
|
||||
|
||||
if ($adminDir && $script && str_starts_with($script, $adminDir . DIRECTORY_SEPARATOR)) {
|
||||
$inGatedDir = false;
|
||||
if ($script) {
|
||||
foreach ($gatedDirs as $dir) {
|
||||
if (str_starts_with($script, $dir . DIRECTORY_SEPARATOR)) {
|
||||
$inGatedDir = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($inGatedDir) {
|
||||
// نقاط تحت Admin/ تستدعيها تطبيقات الجوال بأدوار غير إدارية.
|
||||
// تم التحقق من مواضع الاستدعاء الفعلية في siro_rider و siro_driver:
|
||||
// errorApp.php → التطبيقان يبلّغان عن الأخطاء
|
||||
|
||||
Reference in New Issue
Block a user