fix(security): fix pervasive IDOR - force JWT user identity in 9 endpoints, fix host injection, exception leaks, wallet auth
This commit is contained in:
@@ -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");
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user