From 740f93c6d39fcdd6009417f8c8cc6011dcc25de6 Mon Sep 17 00:00:00 2001 From: tbrehm <t.brehm@ispconfig.org> Date: Mon, 14 Mar 2011 06:14:19 -0400 Subject: [PATCH] Changed password encryption mechanism in remoting API from md5 to crypt. --- interface/lib/classes/remoting_lib.inc.php | 26 +++++++++++++++++++++++--- 1 files changed, 23 insertions(+), 3 deletions(-) diff --git a/interface/lib/classes/remoting_lib.inc.php b/interface/lib/classes/remoting_lib.inc.php index 1fb0a11..7bd8f69 100644 --- a/interface/lib/classes/remoting_lib.inc.php +++ b/interface/lib/classes/remoting_lib.inc.php @@ -661,11 +661,23 @@ } function ispconfig_sysuser_add($params,$insert_id){ - global $app,$sql1; + global $conf,$app,$sql1; $username = $app->db->quote($params["username"]); $password = $app->db->quote($params["password"]); - $modules = 'mail,sites,dns,tools'; - $startmodule = 'mail'; + if(!isset($params['modules'])) { + $modules = $conf['interface_modules_enabled']; + } else { + $modules = $app->db->quote($params['modules']); + } + if(!isset($params['startmodule'])) { + $startmodule = 'dashboard'; + } else { + $startmodule = $app->db->quote($params["startmodule"]); + if(!preg_match('/'.$startmodule.'/',$modules)) { + $_modules = explode(',',$modules); + $startmodule=$_modules[0]; + } + } $usertheme = $app->db->quote($params["usertheme"]); $type = 'user'; $active = 1; @@ -673,6 +685,14 @@ $language = $app->db->quote($params["language"]); $groupid = $app->db->datalogInsert('sys_group', "(name,description,client_id) VALUES ('$username','','$insert_id')", 'groupid'); $groups = $groupid; + + $salt="$1$"; + $base64_alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; + for ($n=0;$n<8;$n++) { + $salt.=$base64_alphabet[mt_rand(0,63)]; + } + $salt.="$"; + $password = crypt(stripslashes($password),$salt); $sql1 = "INSERT INTO sys_user (username,passwort,modules,startmodule,app_theme,typ,active,language,groups,default_group,client_id) VALUES ('$username',md5('$password'),'$modules','$startmodule','$usertheme','$type','$active','$language',$groups,$groupid,$insert_id)"; $app->db->query($sql1); -- Gitblit v1.9.1