From fbfdc438eaf2a70d5fefda74c919edc76e82d0fd Mon Sep 17 00:00:00 2001 From: Pascal Dreissen <pascal@dreissen.nl> Date: Tue, 05 Jul 2016 04:00:30 -0400 Subject: [PATCH] Fixed IPV6 regex https://git.ispconfig.org/ispconfig/ispconfig3/issues/4002 --- interface/lib/classes/functions.inc.php | 40 +++++++++++++++++++++++++++++++++++++++- 1 files changed, 39 insertions(+), 1 deletions(-) diff --git a/interface/lib/classes/functions.inc.php b/interface/lib/classes/functions.inc.php index 8ec4496..03bd11d 100644 --- a/interface/lib/classes/functions.inc.php +++ b/interface/lib/classes/functions.inc.php @@ -190,7 +190,7 @@ $regex = "/^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/"; } else { // IPv6 - $regex = "/^(\:\:([a-f0-9]{1,4}\:){0,6}?[a-f0-9]{0,4}|[a-f0-9]{1,4}(\:[a-f0-9]{1,4}){0,6}?\:\:|[a-f0-9]{1,4}(\:[a-f0-9]{1,4}){1,6}?\:\:([a-f0-9]{1,4}\:){1,6}?[a-f0-9]{1,4})(\/\d{1,3})?$/i"; + $regex = "/(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))/"; } $server_by_id = array(); @@ -390,7 +390,45 @@ return getimagesizefromstring($string); } } + + public function password($minLength = 10, $special = false){ + global $app; + + $iteration = 0; + $password = ""; + $maxLength = $minLength + 5; + $length = $this->getRandomInt($minLength, $maxLength); + while($iteration < $length){ + $randomNumber = (floor(((mt_rand() / mt_getrandmax()) * 100)) % 94) + 33; + if(!$special){ + if (($randomNumber >=33) && ($randomNumber <=47)) { continue; } + if (($randomNumber >=58) && ($randomNumber <=64)) { continue; } + if (($randomNumber >=91) && ($randomNumber <=96)) { continue; } + if (($randomNumber >=123) && ($randomNumber <=126)) { continue; } + } + $iteration++; + $password .= chr($randomNumber); + } + $app->uses('validate_password'); + if($app->validate_password->password_check('', $password, '') !== false) $password = $this->password($minLength, $special); + return $password; + } + + public function getRandomInt($min, $max){ + return floor((mt_rand() / mt_getrandmax()) * ($max - $min + 1)) + $min; + } + + public function generate_customer_no(){ + global $app; + // generate customer no. + $customer_no = mt_rand(100000, 999999); + while($app->db->queryOneRecord("SELECT client_id FROM client WHERE customer_no = ?", $customer_no)) { + $customer_no = mt_rand(100000, 999999); + } + + return $customer_no; + } } ?> -- Gitblit v1.9.1