From f51c9ed2abe5c68211bb3736be5f70b1fe2c9ec0 Mon Sep 17 00:00:00 2001 From: M.Gergo Date: Fri, 8 Mar 2019 21:20:34 +0100 Subject: további rendrakás --- mayor-orig/www/include/base/rights.php | 397 --------------------------------- 1 file changed, 397 deletions(-) delete mode 100644 mayor-orig/www/include/base/rights.php (limited to 'mayor-orig/www/include/base/rights.php') diff --git a/mayor-orig/www/include/base/rights.php b/mayor-orig/www/include/base/rights.php deleted file mode 100644 index dc6b7aa7..00000000 --- a/mayor-orig/www/include/base/rights.php +++ /dev/null @@ -1,397 +0,0 @@ -= 0; $i--) $ret |= ord($res[$i]); - return !$ret; - } - } -} - - -function sessionCookieEncode($sessionID,$now,$extra='') -{ - if ($extra=='') $extra = uniqid(rand(), true); - $extraHash=sessionHash('ripemd160',$extra); - $pwHash = sessionHash('ripemd160',uniqid(rand(), true)); - $value = base64_encode(strtotime($now).'g'.$extraHash.'g'.$pwHash); - return array('name'=>($sessionID), 'value'=>$value, 'store'=> $extraHash, 'pwHash'=>$pwHash); -} - -function sessionCookieDecode($sessionID) -{ - return explode('g',base64_decode($_COOKIE[($sessionID)])); -} - -function pseudoTokenGenerator() { - - if (function_exists('openssl_random_pseudo_bytes')) - $token = bin2hex(openssl_random_pseudo_bytes(32)); - else - $token = bin2hex(sessionHash()); - return $token; -} - -###################################################################### -# Azonosított user ellenőrzése a session tábla alapján -###################################################################### - -function validUser($sessionID,$policy,$skin='',$lang='') { - global $page; - if (_RUNLEVEL === 'cron') { - define('_USERPASSWORD','MaYoR-cron'); - define('_USERACCOUNT','MaYoR-cron'); - define('_USERCN','MaYoR-cron User'); - define('_STUDYID',''); - define('_LANG',$lang); - define('_SESSIONID','cron'); - return true; - } - -// if ($sessionID == '' || $MAYORAPIAUTH['valid']!==true) { - if ($sessionID == '') { - $MAYORAPIAUTH = mayorApiAuth(); // van-e hosszulejáratu session-je - if ($policy == _POLICY && $MAYORAPIAUTH['valid']!==true) { - define('_USERPASSWORD',''); - define('_USERACCOUNT',''); - define('_USERCN',''); - define('_STUDYID',''); - define('_LANG',$lang); - define('_SESSIONID',''); - } - return false; - } else { - - $lr = db_connect('login', array('fv' => 'validUser')); - - if ($lr === false) die('A keretrendeszer adatbázisa nem érhető el! (validUser)'); - // ha nem tudta beállítani a sütit, akkor az $_sc üres lesz így a dt feltétel 1970-01-01, ami nem gond. - list($_sessionDt,$_sessionCookie,$_sessionPwHash) = sessionCookieDecode($sessionID); - $query = "SELECT userAccount, userCn, studyId, aes_decrypt(userPassword, '%s'), skin, lang, activity, dt - FROM session WHERE sessionID='%s' AND policy='%s'"; // [SECURITY-002] quickfix from marton.drotos@sztaki.hu - - if (defined('_SESSION_MAX_IDLE_TIME') and _SESSION_MAX_IDLE_TIME != 0) $query .= " AND activity + INTERVAL "._SESSION_MAX_IDLE_TIME." HOUR > NOW()"; - - $query .= " AND dt='".date('Y-m-d H:i:s', (($_sessionDt=="")?null:$_sessionDt) )."'"; - $query .= " AND sessionCookie='%s'"; - - $ret = db_query($query, array('fv' => 'validUser', 'modul' => 'login', 'result' => 'indexed', 'values' => array($_sessionPwHash, $sessionID, $policy, $_sessionCookie)), $lr); - $num = count($ret); - $sessionMode = 1; - - // ha nincs találat, nézzük meg, van-e a kliensnek hosszú lejáratú tokenje, kivéve, ha ... - if ($num !== 1 && $page!='password') { - $MAYORAPIAUTH = mayorApiAuth(); - if ($MAYORAPIAUTH['valid'] === true) { - global $sessionMode; - $sessionMode = 2; - // reauth AS: - $toPolicy = $MAYORAPIAUTH['policy']; - $userAccount = $MAYORAPIAUTH['userAccount']; - $userCn = $MAYORAPIAUTH['userCn']; - $studyId = $MAYORAPIAUTH['studyId']; - $userPassword = ''; - $lang = _DEFAULT_LANG; - } else { - unsetTokenCookies(); - } - } // --token vizsgálat vége - - if ($num == 1) { - - if ($sessionMode == 1) list($userAccount, $userCn, $studyId, $userPassword, $savedSkin, $lang, $activity, $dt) = array_values($ret[0]); - global $SKINS; - if (_USER_AGENT!=='ppc' && @in_array($savedSkin,$SKINS) ) $skin=$savedSkin; - if ($policy == _POLICY) { - define('_USERACCOUNT',$userAccount); - define('_USERCN',$userCn); - define('_STUDYID',$studyId); - define('_USERPASSWORD',$userPassword); -// define('_SKIN',$skin); - define('_LANG',$lang); - define('_SESSIONID',$sessionID); - } - - // Aktivitás figyelése! // hopp, nem biztos, hogy van session! - $query = "UPDATE session SET activity = NOW() WHERE sessionID = '%s'"; - db_query($query, array('fv' => 'validUser', 'modul' => 'login', 'values' => array($sessionID)), $lr); - db_close($lr); - return true; - - } else { - - if ($policy == _POLICY) { - define('_USERPASSWORD',''); - define('_USERACCOUNT',''); - define('_USERCN',''); - define('_STUDYID',''); -// define('_SKIN',$skin); - define('_LANG',$lang); - define('_SESSIONID',''); - } - db_close($lr); - if ($num > 1) $_SESSION['alert'][] = 'message:multi_session'; - if ($_sessionDt==="") define('_NOCOOKIE',true); // beállítjuk, hogy üzenni tudjunk - - return false; - - } - - } - -} - -//=================================================================================================================================== -// ------------------------------------------ -// debug üzenetek tárolása - a $_DEBUG változóba kerül midnen -// ------------------------------------------ - if (_RUNLEVEL!=='cron') ob_start(); - -// ------------------------------------------ -// a $page, $sub és $f csak a-z betűvel kezdődhet, utána pedig csak (a-z, /_-). $page és $f nem lehet üres -// ------------------------------------------ - - if ( - (preg_match('#^([a-z]|[A-Z])([0-9]|[a-z]|[A-Z]|/|_|-)*$#', $page) == false) OR - ($sub != '' AND preg_match('#^([a-z]|[A-Z])([0-9]|[a-z]|[A-Z]|/|_|-)*$#', $sub) == false) OR - (preg_match('#^([0-9]|[a-z]|[A-Z]|_|-)*$#', $f) == false) - ) { - $_SESSION['alert'][] = 'page:wrong_page:'; - $RIGHTS_OK = false; - } else { - $RIGHTS_OK = true; - } - -// ------------------------------------------ -// Security Check: $policy szerinti ellenőrzés -// ------------------------------------------ - - // A validUser (session.php) beállítja az alapvető session konstansokat is - if ( !validUser($sessionID,$policy,$skin,$lang) ) { - if ($AUTH[$policy]['authentication'] == 'required') { - if (defined('_NOCOOKIE')) $_SESSION['alert'][] = 'message:cookie';//$extendAlert='alert[]=message:cookie&'; - $_SESSION['alert'][]='message:auth_failure:'._CONTROL_FLAG_REQUIRED; - header('Location: index.php?policy=public&page=auth&f=login&toPolicy='.$policy."&toPSF=$page:$sub:$f&sessionID=$sessionID"); - die(); - } else { - // Hibás, vagy nem létező sessionID esetének kezelése - ha nem kötelező a sessionID --> nem csinálunk semmit (lehet egy másik policy-ben valid - } - - } - if (file_exists('include/share/session/base.php')) { - // A session kezeléshez szükséges backend függő függvények pl. memberOf - require('include/share/session/base.php'); - - } - // Remote Protocol Call (MaYoR) - if ($skin=='rpc') { - define('_RPC',true); - require_once('include/share/ssl/ssl.php'); - try - { - $_RPC['senderNodeId'] = $senderNodeId = readVariable($_POST['senderNodeId'],'strictstring',0); - $RPC = new Interconnect(); - $RPC->setRequestTarget('controller'); // A remoteHost lekérdezéshez kellhet - $RPC->setRemoteHostByNodeId($_RPC['senderNodeId']); - $RPC->processRequest(); // vélhetően van request - $_RPC['request'] = $RPC->getIncomingRequest(); - } - catch (Exception $e) - { - //$func=''; - //$DATA = array('error'=>$e->getMessage()); - } - } else { define('_RPC',false); } - // Interconnect end - - define('_RIGHTS_OK',$RIGHTS_OK); - - /* XSRF2 */ - define('__SALTNAME','MS_'.sha1($page.'_'.$sub.'_'.$f)); - define('__SALTVALUE',sessionHash()); - // mtoken - if (empty($_SESSION['mayorToken'])) { - $_SESSION['mayorToken'] = pseudoTokenGenerator(); - } - if (count($_POST)>0) { - if (!empty($_POST['mayorToken'])) { - if (hash_equals($_SESSION['mayorToken'], $_POST['mayorToken'])) { - // OK, token regenerálás + visszakuldjuk az ETAG-ben - $_SESSION['mayorToken'] = pseudoTokenGenerator(); - } else { - if ($_POST['action']!='') { /* Ha nincs action formváltozó, nincs szükség hibaüzenetre, a form nem módosít, de most... */ - $_SESSION['alert'][] = 'message:not_valid_form:pnu2'; - $_JSON['result'] = false; - } - unset($_POST['action']); - unset($action); - } - } else { // klasszikus ellenőrzés, fallback - echo 'FATAL ERROR 696'; - die(); - /* - // $_JSON['result'] = false; // ITT gátolhatjuk a működést - if ($_COOKIE[__SALTNAME]=='') { // a session átállásig - ez semmitől nem véd, adott nevű sütit generálni bárki tud - $_SESSION['alert'][] = 'message:not_valid_form:no cookie'.$_SESSION[__SALTNAME]; - $_JSON['result'] = false; - unset($_POST['action']); - unset($action); - } elseif (!is_null($_COOKIE[__SALTNAME]) && ($_COOKIE[__SALTNAME] == $_POST[__SALTNAME])) { - // rendben - } else { - if ($_POST['action']!='') { // Ha nincs action formváltozó, nincs szükség hibaüzenetre, a form nem módosít - $_SESSION['alert'][] = 'message:not_valid_form'; - $_JSON['result'] = false; - } - unset($_POST['action']); - unset($action); - } - */ - } // END DEPRECATED BLOCK - } - // eredeti post kezelés + ETAG prevent cache - if (($_SERVER['HTTPS']!=='on') || (isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER']!='' && substr($_SERVER['HTTP_REFERER'],4,1)!=='s')) $_ssl = false; else $_ssl=true; - -//4400 if (@setcookie('xxxDEPRECATEDxxx_'.__SALTNAME,__SALTVALUE,time()+60*60*_SESSION_MAX_IDLE_TIME,'/','',$_ssl, true) == false) { -//4400 $_SESSION['alert'][] = 'message:no_cookie:unabletoset'; -//4400 } - - - /* /XSRF2 previous revision: r4138 */ - - // betöltjük az össes config-ot... (lásd még widgets) - try { - $_dirlist = scandir(_CONFIGDIR); - for ($i=0; $igetMessage(); - } - // ha betöltenénk az ÖSSZES modul include-jait, akkor be kéne mindent tölteni kb. ugyhogy ezt hagyjuk - if ($dh_all = @opendir("include/widgets/")) { - $includes = array(); - while (($_file = readdir($dh_all)) !== false) { - if (substr($_file,-4) == '.php') $includes[] = $_file; - } - closedir($dh_all); - sort($includes); - for ($i = 0; $i < count($includes); $i++) { - require_once("include/widgets/".$includes[$i]); - } - } - unset($file); - /* ---- */ - if (!in_array($page,$_loadModule)) $_loadModule[] = $page; - for ($i=0; $i10) array_shift($_SESSION['breadcrumb']); - $_SESSION['breadcrumb'][] = array('page'=>"$page",'sub'=>"$sub",'f'=>"$f"); - // --------- - if (file_exists($includeFile)) require($includeFile); - if (file_exists($skinFile)) require($skinFile); - if (file_exists($preFile)) include($preFile); - -// --------------------------------------- -// debug üzenetek tárolásának vége -// --------------------------------------- - $_DEBUG = ob_get_contents(); - ob_end_clean(); - - -?> \ No newline at end of file -- cgit v1.2.3