Fix #18: Exception leak remediation across 87 PHP files

- Replaced all client-facing $e->getMessage() with generic error messages
- Added error_log() with filename prefix to all catch blocks
- Covered jsonError(), echo, and json_encode() response patterns
- Also fixed 2 remaining display_errors=1 and add_invoice.php leak
- Script-assisted fix for 75 files, manual fix for 12 remaining edge cases
This commit is contained in:
Hamza-Ayed
2026-06-17 07:48:31 +03:00
parent e51d266a0f
commit 72eeb24cd7
88 changed files with 240 additions and 100 deletions

View File

@@ -38,6 +38,7 @@ try {
]);
} catch (Exception $e) {
http_response_code(500);
echo json_encode(['status' => 'error', 'message' => $e->getMessage()]);
error_log("[driver_ranking.php] " . $e->getMessage());
echo json_encode(['status' => 'error', 'message' => 'An internal error occurred']);
}
?>

View File

@@ -53,6 +53,7 @@ try {
]);
} catch (Exception $e) {
http_response_code(500);
echo json_encode(['status' => 'error', 'message' => $e->getMessage()]);
error_log("[growth.php] " . $e->getMessage());
echo json_encode(['status' => 'error', 'message' => 'An internal error occurred']);
}
?>

View File

@@ -47,6 +47,7 @@ try {
]);
} catch (Exception $e) {
http_response_code(500);
echo json_encode(['status' => 'error', 'message' => $e->getMessage()]);
error_log("[revenue.php] " . $e->getMessage());
echo json_encode(['status' => 'error', 'message' => 'An internal error occurred']);
}
?>

View File

@@ -39,6 +39,7 @@ try {
]);
} catch (Exception $e) {
http_response_code(500);
echo json_encode(['status' => 'error', 'message' => $e->getMessage()]);
error_log("[settlements.php] " . $e->getMessage());
echo json_encode(['status' => 'error', 'message' => 'An internal error occurred']);
}
?>

View File

@@ -29,6 +29,7 @@ try {
]);
} catch (Exception $e) {
http_response_code(500);
echo json_encode(['status' => 'error', 'message' => $e->getMessage()]);
error_log("[stats.php] " . $e->getMessage());
echo json_encode(['status' => 'error', 'message' => 'An internal error occurred']);
}
?>

View File

@@ -97,6 +97,7 @@ try {
jsonError("Invalid action_type", 400);
} catch (Exception $e) {
jsonError("Blacklist action failed: " . $e->getMessage(), 500);
error_log("[blacklist_manager.php] " . $e->getMessage());
jsonError("Blacklist action failed. Please try again later.", 500);
}
?>

View File

@@ -100,6 +100,7 @@ try {
jsonSuccess($scorecard);
} catch (Exception $e) {
jsonError("Failed to fetch scorecard: " . $e->getMessage(), 500);
error_log("[driver_scorecard.php] " . $e->getMessage());
jsonError("Failed to fetch scorecard. Please try again later.", 500);
}
?>

View File

@@ -57,6 +57,7 @@ try {
echo json_encode($response);
} catch (Exception $e) {
http_response_code(500);
echo json_encode(['status' => 'error', 'message' => $e->getMessage()]);
error_log("[realtime_dashboard.php] " . $e->getMessage());
echo json_encode(['status' => 'error', 'message' => 'An internal error occurred']);
}
?>

View File

@@ -72,6 +72,7 @@ try {
]);
} catch (Exception $e) {
http_response_code(500);
echo json_encode(['status' => 'error', 'message' => $e->getMessage()]);
error_log("[smart_alerts.php] " . $e->getMessage());
echo json_encode(['status' => 'error', 'message' => 'An internal error occurred']);
}
?>