From 37b29231e47a0c4458dc1c15d98588f16f07e1e2 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Thu, 06 Aug 2015 03:18:44 -0400 Subject: [PATCH] - don't set password via remoting if field is empty --- interface/lib/classes/tform_base.inc.php | 20 ++++++++------------ 1 files changed, 8 insertions(+), 12 deletions(-) diff --git a/interface/lib/classes/tform_base.inc.php b/interface/lib/classes/tform_base.inc.php index d61afd0..784e96a 100644 --- a/interface/lib/classes/tform_base.inc.php +++ b/interface/lib/classes/tform_base.inc.php @@ -416,12 +416,10 @@ /* CSRF PROTECTION */ // generate csrf protection id and key - $_csrf_id = uniqid($this->formDef['name'] . '_'); - $_csrf_value = sha1(uniqid(microtime(true), true)); - if(!isset($_SESSION['_csrf'])) $_SESSION['_csrf'] = array(); - if(!isset($_SESSION['_csrf_timeout'])) $_SESSION['_csrf_timeout'] = array(); - $_SESSION['_csrf'][$_csrf_id] = $_csrf_value; - $_SESSION['_csrf_timeout'][$_csrf_id] = time() + 3600; // timeout hash in 1 hour + $csrf_token = $app->auth->csrf_token_get($this->formDef['name']); + $_csrf_id = $csrf_token['csrf_id']; + $_csrf_value = $csrf_token['csrf_key']; + $this->formDef['tabs'][$tab]['fields']['_csrf_id'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', @@ -471,7 +469,7 @@ if(is_array($field['value'])) { foreach($field['value'] as $k => $v) { $selected = ($k == $val)?' SELECTED':''; - if(!empty($this->wordbook[$v])) + if(isset($this->wordbook[$v])) $v = $this->wordbook[$v]; $out .= "<option value='$k'$selected>".$this->lng($v)."</option>\r\n"; } @@ -714,10 +712,6 @@ unset($_POST); unset($record); } - $_SESSION['_csrf'][$_csrf_id] = ' '; - $_SESSION['_csrf_timeout'][$_csrf_id] = ' '; - unset($_SESSION['_csrf'][$_csrf_id]); - unset($_SESSION['_csrf_timeout'][$_csrf_id]); if(isset($_SESSION['_csrf_timeout']) && is_array($_SESSION['_csrf_timeout'])) { $to_unset = array(); @@ -725,6 +719,8 @@ if($timeout < time()) $to_unset[] = $_csrf_id; } foreach($to_unset as $_csrf_id) { + $_SESSION['_csrf'][$_csrf_id] = null; + $_SESSION['_csrf_timeout'][$_csrf_id] = null; unset($_SESSION['_csrf'][$_csrf_id]); unset($_SESSION['_csrf_timeout'][$_csrf_id]); } @@ -945,7 +941,7 @@ } break; case 'NOTEMPTY': - if(empty($field_value)) { + if(!isset($field_value) || $field_value === '') { $errmsg = $validator['errmsg']; if(isset($this->wordbook[$errmsg])) { $this->errorMessage .= $this->wordbook[$errmsg]."<br />\r\n"; -- Gitblit v1.9.1