From 84573a50c0ff30d3c718a9e8182cfa063487f897 Mon Sep 17 00:00:00 2001 From: Erik Neubauer <49983818+enbrnz@users.noreply.github.com> Date: Thu, 10 Nov 2022 12:44:51 +0100 Subject: [PATCH] Domain validation --- lib/Controller/SettingsController.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/lib/Controller/SettingsController.php b/lib/Controller/SettingsController.php index 22e996af..a93d09b4 100644 --- a/lib/Controller/SettingsController.php +++ b/lib/Controller/SettingsController.php @@ -101,6 +101,21 @@ public function setConfig($group, $useWhitelist, $whitelist, $shareBlockDomains) ]); } + if (!empty($shareBlockDomains)) { + $blockedDomains = \explode(",", $shareBlockDomains); + $domainPattern = "/^(?=.{1,254}$)((?=[a-z0-9-]{1,63}\.)(xn--+)?[a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,63}$/i"; + foreach ($blockedDomains as $domain) { + if (!preg_match($domainPattern, $domain)) { + return new DataResponse([ + 'status' => 'error', + 'data' => [ + 'message' => $this->l10n->t('Invalid domain name: %s', $domain) + ], + ]); + } + } + } + $newWhitelist = []; foreach ($whitelist as $app) { $newWhitelist[] = \trim($app);