Skip to content

Commit 1846728

Browse files
committed
Add extra validation for text output
1 parent 4ead6b2 commit 1846728

14 files changed

+46
-6
lines changed

site/private_core/controller/APIController.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,14 @@
77
require_once('Controller.php');
88
require_once('private_core/model/APIModel.php');
99
require_once('private_core/objects/IAsyncHandler.php');
10+
require_once('private_core/objects/DataValidators.php');
1011

1112
/**
1213
* @property \RipDB\Model\APIModel $model
1314
*/
1415
class APIController extends Controller implements \RipDB\Objects\IAsyncHandler
1516
{
17+
use \RipDB\DataValidator;
1618
public function __construct(string $page)
1719
{
1820
parent::__construct($page, new m\APIModel());
@@ -101,6 +103,7 @@ private function dropdownSearch($method): array
101103
$result = $this->model->getRecords('Rips', 'RipID', 'RipName', $search, $rand);
102104
break;
103105
}
106+
$this->cleanseDatabaseDataForOutput($result);
104107
return $result;
105108
}
106109
}

site/private_core/controller/ChannelController.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public function performRequest(array $data = []): void
4343
$_GET['search'] ?? null,
4444
);
4545

46+
$this->cleanseDatabaseDataForOutput($records);
4647
$this->setData('results', $records);
4748

4849
// Pagination values
@@ -67,6 +68,7 @@ public function performRequest(array $data = []): void
6768
\Flight::redirect('/channels');
6869
die();
6970
}
71+
$this->cleanseDatabaseDataForOutput($channel);
7072
$this->setData('channel', $channel);
7173
break;
7274
}

site/private_core/controller/ComposerController.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public function performRequest(array $data = []): void
4343
$_GET['search'] ?? null,
4444
);
4545

46+
$this->cleanseDatabaseDataForOutput($composers);
4647
$this->setData('results', $composers);
4748

4849
// Pagination values
@@ -67,6 +68,8 @@ public function performRequest(array $data = []): void
6768
\RipDB\addNotification('The specified composer does not exist.', \RipDB\NotificationPriority::Warning);
6869
die();
6970
}
71+
$this->cleanseDatabaseDataForOutput($composer);
72+
7073
$this->setData('composer', $composer);
7174

7275
break;

site/private_core/controller/GameController.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public function performRequest(array $data = []): void
4343
$_GET['search'] ?? null,
4444
);
4545

46+
$this->cleanseDatabaseDataForOutput($records);
4647
$this->setData('results', $records);
4748

4849
// Pagination values
@@ -67,6 +68,7 @@ public function performRequest(array $data = []): void
6768
\Flight::redirect('/games');
6869
die();
6970
}
71+
$this->cleanseDatabaseDataForOutput($game);
7072
$this->setData('game', $game);
7173
break;
7274
}

site/private_core/controller/JokeController.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ public function performRequest(array $data = []): void
4747
$_GET['metajokes'] ?? [],
4848
);
4949

50+
$this->cleanseDatabaseDataForOutput($jokes);
5051
$this->setData('results', $jokes);
5152

5253
// Pagination values
@@ -84,6 +85,8 @@ public function performRequest(array $data = []): void
8485
\Flight::redirect('/jokes');
8586
die();
8687
}
88+
$this->cleanseDatabaseDataForOutput($joke);
89+
8790
$this->setData('joke', $joke);
8891
break;
8992
}

site/private_core/controller/MetaController.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ public function performRequest(array $data = []): void
4545
$_GET['metas'] ?? [],
4646
);
4747

48+
$this->cleanseDatabaseDataForOutput($records);
4849
$this->setData('results', $records);
4950

5051
// Pagination values
@@ -80,6 +81,7 @@ public function performRequest(array $data = []): void
8081
\Flight::redirect('/meta-jokes');
8182
die();
8283
}
84+
$this->cleanseDatabaseDataForOutput($meta);
8385
$this->setData('meta', $meta);
8486
break;
8587
}

site/private_core/controller/MetaJokeController.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ public function performRequest(array $data = []): void
4545
$_GET['metas'] ?? [],
4646
);
4747

48+
$this->cleanseDatabaseDataForOutput($records);
4849
$this->setData('results', $records);
4950

5051
// Pagination values
@@ -80,6 +81,7 @@ public function performRequest(array $data = []): void
8081
\Flight::redirect('/meta-jokes');
8182
die();
8283
}
84+
$this->cleanseDatabaseDataForOutput($metaJoke);
8385
$this->setData('metaJoke', $metaJoke);
8486
break;
8587
}

site/private_core/controller/PlatformController.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public function performRequest(array $data = []): void
4343
$_GET['search'] ?? null,
4444
);
4545

46+
$this->cleanseDatabaseDataForOutput($platforms);
4647
$this->setData('results', $platforms);
4748

4849
// Pagination values
@@ -67,6 +68,8 @@ public function performRequest(array $data = []): void
6768
\RipDB\addNotification('The specified platform does not exist.', \RipDB\NotificationPriority::Warning);
6869
die();
6970
}
71+
$this->cleanseDatabaseDataForOutput($platform);
72+
7073
$this->setData('platform', $platform);
7174
break;
7275
}
@@ -95,7 +98,7 @@ public function validateRequest(?array $extraData = null): array|string
9598
$result = [new \RipDB\Error('Invalid form submission.')];
9699
break;
97100
}
98-
101+
99102
return $result;
100103
}
101104
}

site/private_core/controller/PlaylistController.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public function performRequest(array $data = []): void
3838
$id = $data['id'] ?? null;
3939
if (!empty($id) && is_numeric($id)) {
4040
$playlist = $this->model->getPlaylist($id);
41-
41+
4242
// If the playlist is not public, check if the user viewing it is the owner
4343
if (($playlist['IsPublic'] == 0 && $playlist['Creator'] == $_SESSION[\RipDB\AUTH_USER]) || $playlist['IsPublic'] == 1) {
4444
$this->setData('playlist', $playlist);
@@ -64,6 +64,7 @@ public function get(string $method, ?string $methodGroup = null): mixed
6464
if (empty($result)) {
6565
$result = 'The specified playlist does not exist.';
6666
}
67+
$this->cleanseDatabaseDataForOutput($result);
6768
} else {
6869
$result = 'You must be logged in to edit a playlist.';
6970
}
@@ -176,7 +177,7 @@ public function validateRequest(?array $extraData = null): array|string
176177
$validated['AccountID'] = $_SESSION[AUTH_USER];
177178

178179
$result = $this->submitRequest($validated, 'usp_DeletePlaylist', '', 'Playlists successfully deleted!');
179-
}else {
180+
} else {
180181
$result = [new \RipDB\Error('The playlist does not exist.')];
181182
}
182183

site/private_core/controller/RipController.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ public function performRequest(array $data = []): void
4848
$rips = [];
4949
$offset = $this->getOffset($ripCount, '/rips');
5050
$rips = $this->model->search($rowCount, $offset, $_GET['s'] ?? null, $_GET['search'] ?? null, $tags, $jokes, $games, $rippers, $genres, $metaJokes, $metas, $_GET['channel'] ?? null, $useAltName);
51+
$this->cleanseDatabaseDataForOutput($rips);
5152
$this->setData('results', $rips);
5253

5354
// Get search filters
@@ -111,6 +112,7 @@ public function performRequest(array $data = []): void
111112
$this->setData('jokes', $this->sortJokesByTimestamp($rip['Jokes'] ?? []));
112113
}
113114

115+
$this->cleanseDatabaseDataForOutput($rip);
114116
$this->setData('rip', $rip);
115117
$this->setData('hasWiki', $this->model->channelHasWiki($rip['RipChannel']));
116118
if ($rip !== null) {
@@ -159,6 +161,7 @@ public function performRequest(array $data = []): void
159161
}
160162
}
161163
$rip['Jokes'] = $temp;
164+
$this->cleanseDatabaseDataForOutput($rip);
162165
$this->setData('rip', $rip);
163166
case 'rips/new':
164167
$this->setData('rippers', $this->model->getRippers());

0 commit comments

Comments
 (0)