From 9f712a52c117f8bec89a4156a9cd30fe9887b9e5 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Sun, 5 Jun 2016 06:47:19 +0200 Subject: [PATCH] #125 token system, security rework, system.js reflect all calls --- api/api.php | 26 +- api/api_login.php | 42 ++- lib/system/lib/system.js | 199 ++++++++++++ log/error_handler/error_handler_dbwriter.php | 4 +- page/State.php | 4 +- page/text.php | 2 +- sai/modules/saimod_sys_api/saimod_sys_api.php | 6 +- .../saimod_sys_cache/saimod_sys_cache.php | 2 +- .../saimod_sys_config/saimod_sys_config.php | 2 +- .../saimod_sys_cron/saimod_sys_cron.php | 8 +- .../saimod_sys_docu/saimod_sys_docu.php | 2 +- .../saimod_sys_files/saimod_sys_files.php | 2 +- sai/modules/saimod_sys_git/saimod_sys_git.php | 2 +- sai/modules/saimod_sys_log/saimod_sys_log.php | 2 +- .../js/sai_sys_login_submit.js | 43 +-- .../saimod_sys_login/saimod_sys_login.php | 14 +- sai/modules/saimod_sys_login/tpl/register.tpl | 11 - sai/modules/saimod_sys_mod/saimod_sys_mod.php | 2 +- .../saimod_sys_page/saimod_sys_page.php | 6 +- .../js/saimod_sys_security.js | 8 +- .../saimod_sys_security.php | 20 +- .../saimod_sys_text/saimod_sys_text.php | 2 +- .../saimod_sys_todo/saimod_sys_todo.php | 12 +- .../saistart_sys_sai/js/saistart_sys_sai.js | 10 +- .../saistart_sys_sai/saistart_sys_sai.php | 6 +- sai/sai/sai.php | 1 - sai/sai/saigui.php | 2 +- security/Security.php | 150 +++++---- security/qq/SYS_SECURITY_CREATE.php | 8 +- security/qq/SYS_SECURITY_LOGIN_MD5.php | 15 - .../qq/SYS_SECURITY_LOGIN_USER_EMAIL_SHA1.php | 15 + ...1.php => SYS_SECURITY_LOGIN_USER_SHA1.php} | 6 +- sql/qt/SCHEMA_SYSTEM.php | 1 + sql/qt/mysql/data/system_api.sql | 6 +- sql/qt/mysql/data/system_sai_api.sql | 302 +++++++++--------- sql/qt/mysql/schema/system_token.sql | 14 + sql/qt/mysql/schema/system_user.sql | 10 +- sql/tbl/system_user.php | 3 +- system/locale.php | 8 +- token/autoload.inc | 7 + token/qq/BETA_CHECK_CODE.php | 8 + token/qq/BETA_DELETE_CODE.php | 9 + token/qq/SYS_TOKEN_CONFIRM.php | 8 + token/qq/SYS_TOKEN_GET.php | 8 + token/qq/SYS_TOKEN_INSERT.php | 9 + token/token.php | 45 +++ token/token_change_email.php | 12 + token/token_confirm_email.php | 12 + token/token_handler.php | 9 + token/token_reset_password.php | 12 + 50 files changed, 734 insertions(+), 383 deletions(-) delete mode 100644 security/qq/SYS_SECURITY_LOGIN_MD5.php create mode 100644 security/qq/SYS_SECURITY_LOGIN_USER_EMAIL_SHA1.php rename security/qq/{SYS_SECURITY_LOGIN_SHA1.php => SYS_SECURITY_LOGIN_USER_SHA1.php} (55%) create mode 100644 sql/qt/mysql/schema/system_token.sql create mode 100644 token/autoload.inc create mode 100644 token/qq/BETA_CHECK_CODE.php create mode 100644 token/qq/BETA_DELETE_CODE.php create mode 100644 token/qq/SYS_TOKEN_CONFIRM.php create mode 100644 token/qq/SYS_TOKEN_GET.php create mode 100644 token/qq/SYS_TOKEN_INSERT.php create mode 100644 token/token.php create mode 100644 token/token_change_email.php create mode 100644 token/token_confirm_email.php create mode 100644 token/token_handler.php create mode 100644 token/token_reset_password.php diff --git a/api/api.php b/api/api.php index cd566cd..c9ff66c 100644 --- a/api/api.php +++ b/api/api.php @@ -1,12 +1,36 @@ id : null, $thrown ? 1 : 0),*/ + ($user = \SYSTEM\SECURITY\security::getUser()) ? $user->id : null, $thrown ? 1 : 0),*/ array( get_class($E), $E->getMessage(), $E->getCode(), $E->getFile(), $E->getLine(), $E->getTraceAsString(), getenv('REMOTE_ADDR'),round(microtime(true) - \SYSTEM\time::getStartTime(),5), $_SERVER["SERVER_NAME"],$_SERVER["SERVER_PORT"],$_SERVER['REQUEST_URI'], serialize($_POST), array_key_exists('HTTP_REFERER', $_SERVER) ? $_SERVER['HTTP_REFERER'] : null, array_key_exists('HTTP_USER_AGENT',$_SERVER) ? $_SERVER['HTTP_USER_AGENT'] : null, - ($user = \SYSTEM\SECURITY\Security::getUser()) ? $user->id : null,$thrown ? 1 : 0)); + ($user = \SYSTEM\SECURITY\security::getUser()) ? $user->id : null,$thrown ? 1 : 0)); if(\property_exists(get_class($E), 'logged')){ $E->logged = true;} //we just did log diff --git a/page/State.php b/page/State.php index 23314a8..50b3408 100644 --- a/page/State.php +++ b/page/State.php @@ -19,8 +19,8 @@ class State { while($row = $res->next()){ if(!self::is_loaded($row,$substate,$state_name,$row['parent_id'])){ continue;} - if( ($row['login'] == 1 && !\SYSTEM\SECURITY\Security::isLoggedIn()) || - ($row['login'] == 2 && \SYSTEM\SECURITY\Security::isLoggedIn())){ + if( ($row['login'] == 1 && !\SYSTEM\SECURITY\security::isLoggedIn()) || + ($row['login'] == 2 && \SYSTEM\SECURITY\security::isLoggedIn())){ continue;} $row['url'] = \SYSTEM\PAGE\replace::replace($row['url'], $vars); $row['url'] = \SYSTEM\PAGE\replace::clean($row['url']); diff --git a/page/text.php b/page/text.php index 1f4e14d..19c5031 100644 --- a/page/text.php +++ b/page/text.php @@ -92,7 +92,7 @@ class text { if($new_id == self::NEW_ENTRY){ return false;} //Insert - if(!\SYSTEM\SQL\SYS_TEXT_SAVE::QI(array($id,$lang,$text, \SYSTEM\SECURITY\Security::getUser()->id,\SYSTEM\SECURITY\Security::getUser()->id))){ + if(!\SYSTEM\SQL\SYS_TEXT_SAVE::QI(array($id,$lang,$text, \SYSTEM\SECURITY\security::getUser()->id,\SYSTEM\SECURITY\security::getUser()->id))){ return false;} //delete all tags \SYSTEM\SQL\SYS_TEXT_DELETE_TAGS::QI(array($id)); diff --git a/sai/modules/saimod_sys_api/saimod_sys_api.php b/sai/modules/saimod_sys_api/saimod_sys_api.php index 01b672a..efd9445 100644 --- a/sai/modules/saimod_sys_api/saimod_sys_api.php +++ b/sai/modules/saimod_sys_api/saimod_sys_api.php @@ -36,7 +36,7 @@ class saimod_sys_api extends \SYSTEM\SAI\SaiModule { return \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_api/tpl/new_dialog.tpl'))->SERVERPATH(),\SYSTEM\PAGE\text::tag(\SYSTEM\SQL\system_text::TAG_SAI_API));} public static function sai_mod__system_sai_saimod_sys_api_action_addcall($ID,$group,$type,$parentID,$parentValue,$name,$verify){ - if(!\SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI_API)){ + if(!\SYSTEM\SECURITY\security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI_API)){ throw new \SYSTEM\LOG\ERROR("You dont have edit Rights - Cant proceeed");} if($parentValue == ''){ $parentValue = NULL;} if($verify == ''){ $verify = NULL;} @@ -45,7 +45,7 @@ class saimod_sys_api extends \SYSTEM\SAI\SaiModule { } public static function sai_mod__system_sai_saimod_sys_api_action_deletecall($ID,$group){ - if(!\SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI_API)){ + if(!\SYSTEM\SECURITY\security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI_API)){ throw new \SYSTEM\LOG\ERROR("You dont have edit Rights - Cant proceeed");} \SYSTEM\SQL\SYS_SAIMOD_API_DEL::QI(array($ID,$group)); return \SYSTEM\LOG\JsonResult::ok(); @@ -74,7 +74,7 @@ class saimod_sys_api extends \SYSTEM\SAI\SaiModule { //public static function html_li_menu(){return '
  • ${sai_menu_api}
  • ';} public static function html_li_menu(){return '
  • ';} public static function right_public(){return false;} - public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI) && \SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI_API);} + public static function right_right(){return \SYSTEM\SECURITY\security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI) && \SYSTEM\SECURITY\security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI_API);} public static function css(){ return array(new \SYSTEM\PSAI('modules/saimod_sys_api/css/saimod_sys_api.css'));} diff --git a/sai/modules/saimod_sys_cache/saimod_sys_cache.php b/sai/modules/saimod_sys_cache/saimod_sys_cache.php index c163d8b..d73da12 100644 --- a/sai/modules/saimod_sys_cache/saimod_sys_cache.php +++ b/sai/modules/saimod_sys_cache/saimod_sys_cache.php @@ -23,7 +23,7 @@ class saimod_sys_cache extends \SYSTEM\SAI\SaiModule { public static function html_li_menu(){return '
  • ';} public static function right_public(){return false;} - public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI);} + public static function right_right(){return \SYSTEM\SECURITY\security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI);} //public static function css(){} public static function js(){ diff --git a/sai/modules/saimod_sys_config/saimod_sys_config.php b/sai/modules/saimod_sys_config/saimod_sys_config.php index cd7b91e..2f324dc 100644 --- a/sai/modules/saimod_sys_config/saimod_sys_config.php +++ b/sai/modules/saimod_sys_config/saimod_sys_config.php @@ -141,7 +141,7 @@ class saimod_sys_config extends \SYSTEM\SAI\SaiModule { } public static function html_li_menu(){return '
  • ';} public static function right_public(){return false;} - public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI);} + public static function right_right(){return \SYSTEM\SECURITY\security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI);} public static function js(){ return array(new \SYSTEM\PSAI('modules/saimod_sys_config/js/saimod_sys_config.js'));} //public static function css(){} diff --git a/sai/modules/saimod_sys_cron/saimod_sys_cron.php b/sai/modules/saimod_sys_cron/saimod_sys_cron.php index af62d48..2c6f813 100644 --- a/sai/modules/saimod_sys_cron/saimod_sys_cron.php +++ b/sai/modules/saimod_sys_cron/saimod_sys_cron.php @@ -18,14 +18,14 @@ class saimod_sys_cron extends \SYSTEM\SAI\SaiModule { } public static function sai_mod__system_sai_saimod_sys_cron_action_change($cls,$status){ - if(!\SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI_CRON)){ + if(!\SYSTEM\SECURITY\security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI_CRON)){ throw new \SYSTEM\LOG\ERROR("You dont have edit Rights - Cant proceeed");} \SYSTEM\SQL\SYS_SAIMOD_CRON_CHANGE::QI(array($status, $cls)); return \SYSTEM\LOG\JsonResult::ok(); } public static function sai_mod__system_sai_saimod_sys_cron_action_add($cls,$min,$hour,$day,$day_week,$month){ - if(!\SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI_CRON)){ + if(!\SYSTEM\SECURITY\security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI_CRON)){ throw new \SYSTEM\LOG\ERROR("You dont have edit Rights - Cant proceeed");} if(!\SYSTEM\CRON\cron::check($cls)){ throw new \SYSTEM\LOG\ERROR("Given Class is not a CronJob");} @@ -34,7 +34,7 @@ class saimod_sys_cron extends \SYSTEM\SAI\SaiModule { } public static function sai_mod__system_sai_saimod_sys_cron_action_del($cls){ - if(!\SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI_CRON)){ + if(!\SYSTEM\SECURITY\security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI_CRON)){ throw new \SYSTEM\LOG\ERROR("You dont have edit Rights - Cant proceeed");} \SYSTEM\SQL\SYS_SAIMOD_CRON_DEL::QI(array($cls)); return \SYSTEM\LOG\JsonResult::ok();} @@ -42,7 +42,7 @@ class saimod_sys_cron extends \SYSTEM\SAI\SaiModule { //public static function html_li_menu(){return '
  • ${sai_menu_cron}
  • ';} public static function html_li_menu(){return '
  • ';} public static function right_public(){return false;} - public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI_CRON);} + public static function right_right(){return \SYSTEM\SECURITY\security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI_CRON);} public static function css(){ return array(new \SYSTEM\PSAI('modules/saimod_sys_cron/css/saimod_sys_cron.css'));} diff --git a/sai/modules/saimod_sys_docu/saimod_sys_docu.php b/sai/modules/saimod_sys_docu/saimod_sys_docu.php index a62ffbd..d2e96b3 100644 --- a/sai/modules/saimod_sys_docu/saimod_sys_docu.php +++ b/sai/modules/saimod_sys_docu/saimod_sys_docu.php @@ -39,7 +39,7 @@ class saimod_sys_docu extends \SYSTEM\SAI\SaiModule { //public static function html_li_menu(){return '
  • ${sai_menu_docu}
  • ';} public static function html_li_menu(){return '
  • ';} public static function right_public(){return false;} - public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI);} + public static function right_right(){return \SYSTEM\SECURITY\security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI);} //public static function css(){} public static function js(){ diff --git a/sai/modules/saimod_sys_files/saimod_sys_files.php b/sai/modules/saimod_sys_files/saimod_sys_files.php index fba02f8..edbf4bc 100644 --- a/sai/modules/saimod_sys_files/saimod_sys_files.php +++ b/sai/modules/saimod_sys_files/saimod_sys_files.php @@ -46,7 +46,7 @@ class saimod_sys_files extends \SYSTEM\SAI\SaiModule { //public static function html_li_menu(){return '
  • ${sai_menu_files}
  • ';} public static function html_li_menu(){return '
  • ';} public static function right_public(){return false;} - public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI) && \SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI_FILES);} + public static function right_right(){return \SYSTEM\SECURITY\security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI) && \SYSTEM\SECURITY\security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI_FILES);} //public static function css(){} public static function js(){ diff --git a/sai/modules/saimod_sys_git/saimod_sys_git.php b/sai/modules/saimod_sys_git/saimod_sys_git.php index d7affdf..c708cbd 100644 --- a/sai/modules/saimod_sys_git/saimod_sys_git.php +++ b/sai/modules/saimod_sys_git/saimod_sys_git.php @@ -41,7 +41,7 @@ class saimod_sys_git extends \SYSTEM\SAI\SaiModule { //public static function html_li_menu(){return '
  • ${sai_menu_git}
  • ';} public static function html_li_menu(){return '