From 932a893d69fe3bfbc6a3a71d76e0acf1aba9fa11 Mon Sep 17 00:00:00 2001 From: infosave2007 Date: Sat, 8 Nov 2025 13:56:11 +0300 Subject: [PATCH] feat: sanitize client name input to allow only letters, numbers, underscores, and dashes --- inc/VpnClient.php | 4 ++++ templates/servers/view.twig | 19 ++++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/inc/VpnClient.php b/inc/VpnClient.php index f2d5c61..bca4a9d 100644 --- a/inc/VpnClient.php +++ b/inc/VpnClient.php @@ -40,6 +40,10 @@ class VpnClient { public static function create(int $serverId, int $userId, string $name, ?int $expiresInDays = null): int { $pdo = DB::conn(); + // Sanitize client name (replace spaces and special characters) + $name = trim($name); + $name = preg_replace('/[^a-zA-Z0-9_-]/', '_', $name); + // Get server data $server = new VpnServer($serverId); $serverData = $server->getData(); diff --git a/templates/servers/view.twig b/templates/servers/view.twig index 63297aa..a95ba29 100644 --- a/templates/servers/view.twig +++ b/templates/servers/view.twig @@ -23,7 +23,10 @@

{{ t('clients.create') }}

- +
+ +

Spaces and special characters will be replaced with underscore

+