From 3081ff7b5b4935a75cebfd04ad67717eed78016b Mon Sep 17 00:00:00 2001 From: "florian.azizian" <florian.azizian@maarch.org> Date: Wed, 8 Jan 2020 11:54:25 +0100 Subject: [PATCH] FIX security --- install/scripts/database.php | 63 ++++++++++++------------------------ 1 file changed, 20 insertions(+), 43 deletions(-) diff --git a/install/scripts/database.php b/install/scripts/database.php index 4565382601a..96b1ba70025 100755 --- a/install/scripts/database.php +++ b/install/scripts/database.php @@ -28,6 +28,17 @@ * @ingroup install */ +$pattern = '/^[a-zA-Z0-9_\-\s]*$/'; +if (preg_match($pattern, $_REQUEST['databasename']) == false) { + $return['status'] = 0; + $return['text'] = "Wrong database name"; + + $jsonReturn = json_encode($return); + + echo $jsonReturn; + exit; +} + if ($_REQUEST['action'] == 'testConnect') { $_SESSION['config']['databaseserver'] = $_REQUEST['databaseserver']; $_SESSION['config']['databaseserverport'] = $_REQUEST['databaseserverport']; @@ -53,18 +64,11 @@ if ($_REQUEST['action'] == 'testConnect') { exit; } - - $filename = realpath('.').'/custom/'; - if (!file_exists($filename)) { - $cheminCustom = realpath('.')."/custom"; - mkdir($cheminCustom, 0755); - } - - - - - - + $filename = realpath('.').'/custom/'; + if (!file_exists($filename)) { + $cheminCustom = realpath('.')."/custom"; + mkdir($cheminCustom, 0755); + } $return['status'] = 1; $return['text'] = ''; @@ -74,24 +78,10 @@ if ($_REQUEST['action'] == 'testConnect') { echo $jsonReturn; exit; } elseif ($_REQUEST['action'] == 'createdatabase') { - - $verifDatabase = $Class_Install->verificationDatabase($_REQUEST['databasename']); - //var_dump($verifDatabase); - if($verifDatabase == false){ - //var_dump('test coucou'); - // $_SESSION['config']['databasename'] = $_REQUEST['databasename']; - // //var_dump($_SESSION['config']); - // $return['status'] = 3; - // $return['text'] = "base de données existe déjà "; - // $jsonReturn = json_encode($return); - // echo $jsonReturn; - //exit; + if ($verifDatabase == false) { $createCustom = $Class_Install->createCustom($_REQUEST['databasename']); - //var_dump($createCustom); - //var_dump($createCustom); - if(!$createCustom){ - //var_dump($createDatabase); + if (!$createCustom) { $return['status'] = 0; $return['text'] = _UNABLE_TO_CREATE_CUSTOM; @@ -102,7 +92,6 @@ if ($_REQUEST['action'] == 'testConnect') { } $fillConfigs = $Class_Install->fillConfigOfAppAndModule($_REQUEST['databasename']); - //var_dump($fillConfigs); if (!$fillConfigs) { $return['status'] = 0; $return['text'] = _UNABLE_TO_CREATE_CUSTOM; @@ -113,7 +102,6 @@ if ($_REQUEST['action'] == 'testConnect') { exit; } - $return['status'] = 1; $return['text'] = 'redirect'; @@ -121,17 +109,9 @@ if ($_REQUEST['action'] == 'testConnect') { echo $jsonReturn; exit; - - - }elseif($verifDatabase == true){ - - //var_dump($verifDatabase); - - + } elseif ($verifDatabase == true) { $createCustom = $Class_Install->createCustom($_REQUEST['databasename']); - //var_dump($createCustom); - if($createCustom === false){ - //var_dump($createDatabase); + if ($createCustom === false) { $return['status'] = 0; $return['text'] = _UNABLE_TO_CREATE_CUSTOM; @@ -163,11 +143,8 @@ if ($_REQUEST['action'] == 'testConnect') { echo $jsonReturn; exit; - } - } elseif ($_REQUEST['action'] == 'loadDatas') { - $loadDatas = $Class_Install->createData( 'sql/'.$_REQUEST['dataFilename'].'.sql' ); -- GitLab