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

@@ -96,6 +96,6 @@ try {
}
} catch (Exception $e) {
$con->rollBack();
jsonError("An error occurred: " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.");
}
?>

View File

@@ -6,5 +6,5 @@ try {
$columns = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($columns);
} catch (Exception $e) {
echo json_encode(['error' => $e->getMessage()]);
echo json_encode(['error' => 'Database check failed']);
}

View File

@@ -117,5 +117,6 @@ try {
jsonSuccess([], "No complaints found");
}
} catch (Exception $e) {
jsonError("Database error: " . $e->getMessage());
error_log("[getComplaintAllData.php] " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.");
}

View File

@@ -45,6 +45,6 @@ try {
echo json_encode(array("status" => "success", "message" => []));
}
} catch (PDOException $e) {
echo json_encode(array("status" => "failure", "message" => $e->getMessage()));
echo json_encode(array("status" => "failure", "message" => "An internal error occurred"));
}
?>

View File

@@ -56,6 +56,6 @@ try {
} catch (PDOException $e) {
// في حال حدوث خطأ في قاعدة البيانات
jsonError("Database error: " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.");
}
?>

View File

@@ -32,6 +32,7 @@ try {
}
} catch (PDOException $e) {
jsonError("Database error: " . $e->getMessage());
error_log("[getNotesForEmployee.php] " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.");
}
?>

View File

@@ -60,6 +60,6 @@ try {
echo json_encode(array("status" => "success", "message" => []));
}
} catch (PDOException $e) {
echo json_encode(array("status" => "failure", "message" => $e->getMessage()));
echo json_encode(array("status" => "failure", "message" => "An internal error occurred"));
}
?>

View File

@@ -98,6 +98,6 @@ try {
echo json_encode(array("status" => "success", "message" => []));
}
} catch (PDOException $e) {
echo json_encode(array("status" => "failure", "message" => $e->getMessage()));
echo json_encode(array("status" => "failure", "message" => "An internal error occurred"));
}
?>

View File

@@ -127,7 +127,7 @@ try {
// ✅ FIX M-02: إخفاء تفاصيل الخطأ في الإنتاج
$debugMode = getenv('APP_DEBUG') === 'true';
securityLog("[ServiceApp Login Error]", ['msg' => $e->getMessage()]);
jsonError($debugMode ? "Server error: " . $e->getMessage() : "Server error. Please try again later.", 500);
jsonError("Server error. Please try again later.", 500);
}
exit();

View File

@@ -84,7 +84,7 @@ try {
} catch (Exception $e) {
error_log("[Service Register Error] " . $e->getMessage());
jsonError("خطأ في السيرفر: " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.");
}
exit();

View File

@@ -232,6 +232,6 @@ try {
}
$errorMsg = "General Error: " . $e->getMessage();
logStep("ERROR-GEN", $errorMsg);
jsonError($e->getMessage());
jsonError("An internal error occurred. Please try again later.");
}
?>

View File

@@ -143,7 +143,7 @@ try {
} catch (Exception $e) {
// --- 6. التراجع في حال الخطأ ---
$con->rollBack();
jsonError("An error occurred: " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.");
}
?>

View File

@@ -60,6 +60,7 @@ try {
jsonError("Failed to save car data: " . ($err[2] ?? 'unknown error'), 500);
}
} catch (Exception $e) {
jsonError("Exception: " . $e->getMessage(), 500);
error_log("[addCarWantWork.php] " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.", 500);
}
?>