From ace1651ceb27cb0f61042f890b878a021fd27e1f Mon Sep 17 00:00:00 2001 From: Michael Kaufmann Date: Sat, 11 Nov 2023 14:31:45 +0100 Subject: [PATCH] add extra validation for new domains Signed-off-by: Michael Kaufmann --- lib/Froxlor/Api/Commands/Domains.php | 2 ++ lib/Froxlor/Validate/Validate.php | 2 +- lng/de.lng.php | 1 + lng/en.lng.php | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/Froxlor/Api/Commands/Domains.php b/lib/Froxlor/Api/Commands/Domains.php index a5017380..13f81475 100644 --- a/lib/Froxlor/Api/Commands/Domains.php +++ b/lib/Froxlor/Api/Commands/Domains.php @@ -349,6 +349,8 @@ class Domains extends ApiCommand implements ResourceEntity if (substr($p_domain, 0, 4) == 'xn--') { Response::standardError('domain_nopunycode', '', true); + } elseif (Validate::validate_ip2($p_domain, true, '', true, true)) { + Response::standardError('domain_noipaddress', '', true); } $idna_convert = new IdnaWrapper(); diff --git a/lib/Froxlor/Validate/Validate.php b/lib/Froxlor/Validate/Validate.php index 794d217a..daac526a 100644 --- a/lib/Froxlor/Validate/Validate.php +++ b/lib/Froxlor/Validate/Validate.php @@ -224,7 +224,7 @@ class Validate * Check if the submitted string is a valid domainname * * @param string $domainname The domainname which should be checked. - * @param bool $allow_underscore optional if true, allowes the underscore character in a domain label (DKIM etc.) + * @param bool $allow_underscore optional if true, allows the underscore character in a domain label (DKIM etc.) * * @return string|boolean the domain-name if the domain is valid, false otherwise */ diff --git a/lng/de.lng.php b/lng/de.lng.php index 4ef18692..fcc48e5c 100644 --- a/lng/de.lng.php +++ b/lng/de.lng.php @@ -920,6 +920,7 @@ return [ 'dns_duplicate_entry' => 'Eintrag existiert bereits', 'dns_notfoundorallowed' => 'Domain nicht gefunden oder keine Berechtigung', 'domain_nopunycode' => 'Die Eingabe von Punycode (IDNA) ist nicht notwendig. Die Domain wird automatisch konvertiert.', + 'domain_noipaddress' => 'Eine IP-Adresse kann nicht als Domain angelegt werden', 'dns_record_toolong' => 'Records/Labels können maximal 63 Zeichen lang sein', 'noipportgiven' => 'Keine IP/Port angegeben', 'nosslippportgiven' => 'Wenn SSL aktiviert ist, muss eine SSL IP/Port angegeben werden', diff --git a/lng/en.lng.php b/lng/en.lng.php index 296d5dda..5d86329b 100644 --- a/lng/en.lng.php +++ b/lng/en.lng.php @@ -992,6 +992,7 @@ return [ 'dns_duplicate_entry' => 'Record already exists', 'dns_notfoundorallowed' => 'Domain not found or no permission', 'domain_nopunycode' => 'You must not specify punycode (IDNA). The domain will automatically be converted', + 'domain_noipaddress' => 'Cannot add an IP address as domain', 'dns_record_toolong' => 'Records/labels can only be up to 63 characters', 'noipportgiven' => 'No IP/port given', 'nosslippportgiven' => 'When enabling SSL you need to select a SSL IP/port',