diff --git a/api/bulk_operation.php b/api/bulk_operation.php index fe4f521..7029c7f 100644 --- a/api/bulk_operation.php +++ b/api/bulk_operation.php @@ -25,7 +25,7 @@ if (!in_array($_SERVER['REQUEST_METHOD'], ['GET', 'HEAD'], true)) { $csrfToken = $_SERVER['HTTP_X_CSRF_TOKEN'] ?? ''; if (!CsrfMiddleware::validateToken($csrfToken)) { http_response_code(403); - echo json_encode(['success' => false, 'error' => 'Invalid CSRF token']); + echo json_encode(['success' => false, 'error' => 'Invalid CSRF token', 'csrf_token' => CsrfMiddleware::getToken()]); exit; } } diff --git a/api/clone_ticket.php b/api/clone_ticket.php index bb41a16..6862277 100644 --- a/api/clone_ticket.php +++ b/api/clone_ticket.php @@ -34,7 +34,7 @@ try { $csrfToken = $_SERVER['HTTP_X_CSRF_TOKEN'] ?? ''; if (!CsrfMiddleware::validateToken($csrfToken)) { http_response_code(403); - echo json_encode(['success' => false, 'error' => 'Invalid CSRF token']); + echo json_encode(['success' => false, 'error' => 'Invalid CSRF token', 'csrf_token' => CsrfMiddleware::getToken()]); exit; } diff --git a/api/custom_fields.php b/api/custom_fields.php index 2ca16a9..fa3b5ba 100644 --- a/api/custom_fields.php +++ b/api/custom_fields.php @@ -40,7 +40,7 @@ try { $csrfToken = $_SERVER['HTTP_X_CSRF_TOKEN'] ?? ''; if (!CsrfMiddleware::validateToken($csrfToken)) { http_response_code(403); - echo json_encode(['success' => false, 'error' => 'Invalid CSRF token']); + echo json_encode(['success' => false, 'error' => 'Invalid CSRF token', 'csrf_token' => CsrfMiddleware::getToken()]); exit; } } diff --git a/api/delete_attachment.php b/api/delete_attachment.php index 3a8ade7..8a4cf82 100644 --- a/api/delete_attachment.php +++ b/api/delete_attachment.php @@ -48,7 +48,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { // Verify CSRF token $csrfToken = $input['csrf_token'] ?? $_SERVER['HTTP_X_CSRF_TOKEN'] ?? ''; if (!CsrfMiddleware::validateToken($csrfToken)) { - ResponseHelper::forbidden('Invalid CSRF token'); + ResponseHelper::error('Invalid CSRF token', 403, ['csrf_token' => CsrfMiddleware::getToken()]); } // Get attachment ID diff --git a/api/delete_comment.php b/api/delete_comment.php index 9b11935..8576497 100644 --- a/api/delete_comment.php +++ b/api/delete_comment.php @@ -49,7 +49,7 @@ try { if (!CsrfMiddleware::validateToken($csrfToken)) { http_response_code(403); header('Content-Type: application/json'); - echo json_encode(['success' => false, 'error' => 'Invalid CSRF token']); + echo json_encode(['success' => false, 'error' => 'Invalid CSRF token', 'csrf_token' => CsrfMiddleware::getToken()]); exit; } diff --git a/api/generate_api_key.php b/api/generate_api_key.php index 855d9e3..92fdf19 100644 --- a/api/generate_api_key.php +++ b/api/generate_api_key.php @@ -39,8 +39,15 @@ try { if ($_SERVER['REQUEST_METHOD'] === 'POST') { $csrfToken = $_SERVER['HTTP_X_CSRF_TOKEN'] ?? ''; if (!CsrfMiddleware::validateToken($csrfToken)) { + ob_end_clean(); http_response_code(403); - throw new Exception("Invalid CSRF token"); + header('Content-Type: application/json'); + echo json_encode([ + 'success' => false, + 'error' => 'Invalid CSRF token', + 'csrf_token' => CsrfMiddleware::getToken() + ]); + exit; } } diff --git a/api/manage_recurring.php b/api/manage_recurring.php index 79c196e..85cb156 100644 --- a/api/manage_recurring.php +++ b/api/manage_recurring.php @@ -42,7 +42,7 @@ try { $csrfToken = $_SERVER['HTTP_X_CSRF_TOKEN'] ?? ''; if (!CsrfMiddleware::validateToken($csrfToken)) { http_response_code(403); - echo json_encode(['success' => false, 'error' => 'Invalid CSRF token']); + echo json_encode(['success' => false, 'error' => 'Invalid CSRF token', 'csrf_token' => CsrfMiddleware::getToken()]); exit; } } diff --git a/api/manage_templates.php b/api/manage_templates.php index e89067d..31bcc56 100644 --- a/api/manage_templates.php +++ b/api/manage_templates.php @@ -39,7 +39,7 @@ try { $csrfToken = $_SERVER['HTTP_X_CSRF_TOKEN'] ?? ''; if (!CsrfMiddleware::validateToken($csrfToken)) { http_response_code(403); - echo json_encode(['success' => false, 'error' => 'Invalid CSRF token']); + echo json_encode(['success' => false, 'error' => 'Invalid CSRF token', 'csrf_token' => CsrfMiddleware::getToken()]); exit; } } diff --git a/api/manage_workflows.php b/api/manage_workflows.php index 6961d2f..e6d12aa 100644 --- a/api/manage_workflows.php +++ b/api/manage_workflows.php @@ -40,7 +40,7 @@ try { $csrfToken = $_SERVER['HTTP_X_CSRF_TOKEN'] ?? ''; if (!CsrfMiddleware::validateToken($csrfToken)) { http_response_code(403); - echo json_encode(['success' => false, 'error' => 'Invalid CSRF token']); + echo json_encode(['success' => false, 'error' => 'Invalid CSRF token', 'csrf_token' => CsrfMiddleware::getToken()]); exit; } } diff --git a/api/revoke_api_key.php b/api/revoke_api_key.php index fe2bb7f..beede25 100644 --- a/api/revoke_api_key.php +++ b/api/revoke_api_key.php @@ -39,8 +39,15 @@ try { if ($_SERVER['REQUEST_METHOD'] === 'POST') { $csrfToken = $_SERVER['HTTP_X_CSRF_TOKEN'] ?? ''; if (!CsrfMiddleware::validateToken($csrfToken)) { + ob_end_clean(); http_response_code(403); - throw new Exception("Invalid CSRF token"); + header('Content-Type: application/json'); + echo json_encode([ + 'success' => false, + 'error' => 'Invalid CSRF token', + 'csrf_token' => CsrfMiddleware::getToken() + ]); + exit; } } diff --git a/api/ticket_dependencies.php b/api/ticket_dependencies.php index f75b3d5..d969156 100644 --- a/api/ticket_dependencies.php +++ b/api/ticket_dependencies.php @@ -98,7 +98,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' || $_SERVER['REQUEST_METHOD'] === 'DEL require_once dirname(__DIR__) . '/middleware/CsrfMiddleware.php'; $csrfToken = $_SERVER['HTTP_X_CSRF_TOKEN'] ?? ''; if (!CsrfMiddleware::validateToken($csrfToken)) { - ResponseHelper::forbidden('Invalid CSRF token'); + ResponseHelper::error('Invalid CSRF token', 403, ['csrf_token' => CsrfMiddleware::getToken()]); } } diff --git a/api/upload_attachment.php b/api/upload_attachment.php index df0ed80..43c8625 100644 --- a/api/upload_attachment.php +++ b/api/upload_attachment.php @@ -155,7 +155,7 @@ if ($_SERVER['REQUEST_METHOD'] !== 'POST') { // Verify CSRF token $csrfToken = $_POST['csrf_token'] ?? $_SERVER['HTTP_X_CSRF_TOKEN'] ?? ''; if (!CsrfMiddleware::validateToken($csrfToken)) { - ResponseHelper::forbidden('Invalid CSRF token'); + ResponseHelper::error('Invalid CSRF token', 403, ['csrf_token' => CsrfMiddleware::getToken()]); } // Get ticket ID