fix(security): fix pervasive IDOR - force JWT user identity in 9 endpoints, fix host injection, exception leaks, wallet auth

This commit is contained in:
Hamza-Ayed
2026-06-17 06:22:41 +03:00
parent 4a9e6b22c5
commit d6f29802e0
9 changed files with 67 additions and 33 deletions

View File

@@ -2,7 +2,12 @@
require_once __DIR__ . '/../../connect.php';
// --- استقبال المتغيرات ---
$passenger_id = filterRequest("passenger_id");
// Force passenger_id from JWT — only passengers can rate drivers
if ($role !== 'passenger') {
jsonError("Only passengers can rate drivers");
exit;
}
$passenger_id = $user_id;
$driver_id = filterRequest("driver_id");
$ride_id = filterRequest("ride_id");
$rating = filterRequest("rating");
@@ -37,22 +42,11 @@ try {
}
} catch (PDOException $e) {
// --- هذا القسم خاص بأخطاء قاعدة البيانات ---
// 1. تسجيل الخطأ في ملف نصي على السيرفر (للمطور فقط)
// سيتم إنشاء ملف اسمه errors.log في نفس المجلد إذا لم يكن موجوداً
$errorMsg = "[" . date("Y-m-d H:i:s") . "] DB Error: " . $e->getMessage() . " | RideID: $ride_id \n";
file_put_contents("errors.log", $errorMsg, FILE_APPEND);
// 2. إرجاع رسالة خطأ عامة للتطبيق
error_log("[addRateToDriver] DB Error: " . $e->getMessage() . " | RideID: $ride_id");
jsonError("Database Error: Could not save rating");
} catch (Exception $e) {
// --- هذا القسم خاص بالأخطاء العامة الأخرى ---
$errorMsg = "[" . date("Y-m-d H:i:s") . "] General Error: " . $e->getMessage() . "\n";
file_put_contents("errors.log", $errorMsg, FILE_APPEND);
jsonError("Error: " . $e->getMessage());
error_log("[addRateToDriver] General Error: " . $e->getMessage());
jsonError("Error: Could not save rating");
}
?>