Skip to content

Commit 5c6c765

Browse files
author
Konrad Michalik
authored
Merge pull request #11 from xima-media/sanitize-news-parameter
fix: sanitize query parameter in DateController to prevent security vulnerabilities
2 parents d446f45 + 5eee582 commit 5c6c765

1 file changed

Lines changed: 17 additions & 2 deletions

File tree

Classes/Controller/DateController.php

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,23 @@ public function notifiesAction(): ResponseInterface
5757

5858
public function newsAction(): ResponseInterface
5959
{
60-
$newsUid = $GLOBALS['TYPO3_REQUEST']->getQueryParams()['newsId'];
61-
$news = $this->newsRepository->findByUid((int)$newsUid);
60+
$queryParams = $GLOBALS['TYPO3_REQUEST']->getQueryParams();
61+
$newsId = $queryParams['newsId'] ?? null;
62+
63+
if ($newsId === null || !is_numeric($newsId)) {
64+
return new JsonResponse(['error' => 'Invalid or missing newsId parameter'], 400);
65+
}
66+
67+
$newsUid = (int)$newsId;
68+
if ($newsUid <= 0) {
69+
return new JsonResponse(['error' => 'newsId must be a positive integer'], 400);
70+
}
71+
72+
$news = $this->newsRepository->findByUid($newsUid);
73+
74+
if ($news === null) {
75+
return new JsonResponse(['error' => 'News item not found'], 404);
76+
}
6277

6378
return new JsonResponse(
6479
[

0 commit comments

Comments
 (0)