From a87efd502ce40f5a977d1b71d45d9dfc722adb31 Mon Sep 17 00:00:00 2001 From: bnu Date: Fri, 28 Aug 2015 13:17:25 +0900 Subject: [PATCH 1/5] =?UTF-8?q?slack=20=EC=97=B0=EB=8F=99=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 72a55f5ad..3edfc71ff 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,4 +27,5 @@ script: - if [ $(phpenv version-name) != "5.3" ]; then ./vendor/bin/codecept run -d --fail-fast --env travis; fi notifications: slack: - secure: 0HhwktIb65zfge56E4yMfYj0Xj4GeYIaxvh/Obb13BK1/C8RdWBy6u213N5MQ2UHsxYk8wXXzynaCh4psegi2iPy9dbKmkdAdEQMzYoKE2xYVSqZveeVQm0sqFVXAlzggpgs/j5vtvKYjRkQKtTrz0C+p0uJ0bkLcyWGezWTpGc= + secure: jpoMjtkveVuPZM4JXJETAPv8QUCtTbI/ZTixdS9HUgxSb9tD2DkoekMaRzXYnXA82Les/gGxTC0fQFcFrls6Ypkbvp1udBPggmAdLiBHubBIz+yd1BGIf/l4I6MY1QmGe1Lx4xlnVlEgLnKXHn+W+ENep4/MzpCEaR9Vw8wfGqY= + secure: "gPv4qFmGcXimNlI/OeVk5n4VtRCWbAe7VUtw7Inb3A/ZZaVDo11gtMNkwo/JVKSnXqFkaCQYebcNpj2D9Rb2ZCwgjMSX6wxvpA4/8OLOZpbWqFW6Hz2RKNggubXlnalXkIwFcsvj70rKctbcJFk2C1G9rVvYWdVGD9X4/ozQtAc=" From 068ce27fb80b2476497f5fec99bd4d7028581e3b Mon Sep 17 00:00:00 2001 From: bnu Date: Fri, 4 Sep 2015 13:16:22 +0900 Subject: [PATCH 2/5] =?UTF-8?q?fix=20#1731=20Admin=20=EC=95=A1=EC=85=98?= =?UTF-8?q?=EC=97=90=20checkCSRF()=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/module/ModuleHandler.class.php | 41 +++++++++++++++----------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/classes/module/ModuleHandler.class.php b/classes/module/ModuleHandler.class.php index 4f6b67fe2..9fadc71aa 100644 --- a/classes/module/ModuleHandler.class.php +++ b/classes/module/ModuleHandler.class.php @@ -116,7 +116,6 @@ class ModuleHandler extends Handler * */ function init() { - $oModuleModel = getModel('module'); $site_module_info = Context::get('site_module_info'); @@ -317,13 +316,13 @@ class ModuleHandler extends Handler function procModule() { $oModuleModel = getModel('module'); + $display_mode = Mobile::isFromMobilePhone() ? 'mobile' : 'view'; // If error occurred while preparation, return a message instance if($this->error) { $this->_setInputErrorToContext(); - $type = Mobile::isFromMobilePhone() ? 'mobile' : 'view'; - $oMessageObject = ModuleHandler::getModuleInstance('message', $type); + $oMessageObject = ModuleHandler::getModuleInstance('message', $display_mode); $oMessageObject->setError(-1); $oMessageObject->setMessage($this->error); $oMessageObject->dispMessage(); @@ -359,8 +358,7 @@ class ModuleHandler extends Handler $this->httpStatusCode = '404'; $this->_setInputErrorToContext(); - $type = Mobile::isFromMobilePhone() ? 'mobile' : 'view'; - $oMessageObject = ModuleHandler::getModuleInstance('message', $type); + $oMessageObject = ModuleHandler::getModuleInstance('message', $display_mode); $oMessageObject->setError(-1); $oMessageObject->setMessage($this->error); $oMessageObject->dispMessage(); @@ -397,7 +395,7 @@ class ModuleHandler extends Handler if(!in_array(strtoupper($_SERVER['REQUEST_METHOD']), $allowedMethodList)) { $this->error = "msg_invalid_request"; - $oMessageObject = ModuleHandler::getModuleInstance('message', 'view'); + $oMessageObject = ModuleHandler::getModuleInstance('message', $display_mode); $oMessageObject->setError(-1); $oMessageObject->setMessage($this->error); $oMessageObject->dispMessage(); @@ -410,13 +408,24 @@ class ModuleHandler extends Handler Mobile::setMobile(FALSE); } - // Admin ip $logged_info = Context::get('logged_info'); + + // check CSRF for admin actions + if($kind === 'admin' && Context::getRequestMethod() === 'POST' && !checkCSRF()) { + $this->error = 'msg_invalid_request'; + $oMessageObject = ModuleHandler::getModuleInstance('message', $display_mode); + $oMessageObject->setError(-1); + $oMessageObject->setMessage($this->error); + $oMessageObject->dispMessage(); + return $oMessageObject; + } + + // Admin ip if($kind == 'admin' && $_SESSION['denied_admin'] == 'Y') { $this->_setInputErrorToContext(); $this->error = "msg_not_permitted_act"; - $oMessageObject = ModuleHandler::getModuleInstance('message', $type); + $oMessageObject = ModuleHandler::getModuleInstance('message', $display_mode); $oMessageObject->setError(-1); $oMessageObject->setMessage($this->error); $oMessageObject->dispMessage(); @@ -446,8 +455,7 @@ class ModuleHandler extends Handler if(!is_object($oModule)) { $this->_setInputErrorToContext(); - $type = Mobile::isFromMobilePhone() ? 'mobile' : 'view'; - $oMessageObject = ModuleHandler::getModuleInstance('message', $type); + $oMessageObject = ModuleHandler::getModuleInstance('message', $display_mode); $oMessageObject->setError(-1); $oMessageObject->setMessage($this->error); $oMessageObject->dispMessage(); @@ -466,7 +474,7 @@ class ModuleHandler extends Handler { $this->_setInputErrorToContext(); $this->error = 'msg_invalid_request'; - $oMessageObject = ModuleHandler::getModuleInstance('message', $type); + $oMessageObject = ModuleHandler::getModuleInstance('message', $display_mode); $oMessageObject->setError(-1); $oMessageObject->setMessage($this->error); $oMessageObject->dispMessage(); @@ -495,7 +503,7 @@ class ModuleHandler extends Handler else { $this->error = 'msg_invalid_request'; - $oMessageObject = ModuleHandler::getModuleInstance('message', 'view'); + $oMessageObject = ModuleHandler::getModuleInstance('message', $display_mode); $oMessageObject->setError(-1); $oMessageObject->setMessage($this->error); $oMessageObject->dispMessage(); @@ -537,9 +545,8 @@ class ModuleHandler extends Handler if(!is_object($oModule)) { - $type = Mobile::isFromMobilePhone() ? 'mobile' : 'view'; $this->_setInputErrorToContext(); - $oMessageObject = ModuleHandler::getModuleInstance('message', $type); + $oMessageObject = ModuleHandler::getModuleInstance('message', $display_mode); $oMessageObject->setError(-1); $oMessageObject->setMessage('msg_module_is_not_exists'); $oMessageObject->dispMessage(); @@ -569,7 +576,7 @@ class ModuleHandler extends Handler $this->_setInputErrorToContext(); $this->error = 'msg_is_not_administrator'; - $oMessageObject = ModuleHandler::getModuleInstance('message', $type); + $oMessageObject = ModuleHandler::getModuleInstance('message', $display_mode); $oMessageObject->setError(-1); $oMessageObject->setMessage($this->error); $oMessageObject->dispMessage(); @@ -583,7 +590,7 @@ class ModuleHandler extends Handler { $this->_setInputErrorToContext(); $this->error = 'msg_is_not_manager'; - $oMessageObject = ModuleHandler::getModuleInstance('message', 'view'); + $oMessageObject = ModuleHandler::getModuleInstance('message', $display_mode); $oMessageObject->setError(-1); $oMessageObject->setMessage($this->error); $oMessageObject->dispMessage(); @@ -595,7 +602,7 @@ class ModuleHandler extends Handler { $this->_setInputErrorToContext(); $this->error = 'msg_is_not_administrator'; - $oMessageObject = ModuleHandler::getModuleInstance('message', 'view'); + $oMessageObject = ModuleHandler::getModuleInstance('message', $display_mode); $oMessageObject->setError(-1); $oMessageObject->setMessage($this->error); $oMessageObject->dispMessage(); From f26f122f17f249585e43955b0db1ecc684cac239 Mon Sep 17 00:00:00 2001 From: bnu Date: Fri, 4 Sep 2015 15:01:05 +0900 Subject: [PATCH 3/5] =?UTF-8?q?fix=20#1732=20SSO=20=EC=B2=98=EB=A6=AC=20?= =?UTF-8?q?=EC=8B=9C=20=EB=8C=80=EC=83=81=20=EC=82=AC=EC=9D=B4=ED=8A=B8?= =?UTF-8?q?=EC=9D=98=20=EC=A3=BC=EC=86=8C=20=EA=B2=80=EC=A6=9D=EA=B3=BC?= =?UTF-8?q?=EC=A0=95=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/context/Context.class.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/classes/context/Context.class.php b/classes/context/Context.class.php index cd4265b1f..c2ea46405 100644 --- a/classes/context/Context.class.php +++ b/classes/context/Context.class.php @@ -666,9 +666,20 @@ class Context { $url = base64_decode(self::get('default_url')); $url_info = parse_url($url); + + $oModuleModel = getModel('module'); + $site_info = $oModuleModel->getSiteInfoByDomain($url_info['host']); + if(!$site_info->site_srl) { + $oModuleObject = new ModuleObject(); + $oModuleObject->stop('msg_invalid_request'); + + return false; + } + $url_info['query'].= ($url_info['query'] ? '&' : '') . 'SSOID=' . session_id(); $redirect_url = sprintf('%s://%s%s%s?%s', $url_info['scheme'], $url_info['host'], $url_info['port'] ? ':' . $url_info['port'] : '', $url_info['path'], $url_info['query']); header('location:' . $redirect_url); + return FALSE; } // for sites requesting SSO validation From c93b6462bd350240cce48c63eda5c9c3b93b6da1 Mon Sep 17 00:00:00 2001 From: BJRambo Date: Wed, 19 Aug 2015 19:51:20 +0900 Subject: [PATCH 4/5] =?UTF-8?q?=EA=B8=80=20=EC=A0=9C=EB=AA=A9=EC=97=90=20?= =?UTF-8?q?=EB=8C=80=ED=95=9C=20HTML=20=ED=83=9C=EA=B7=B8=20escape?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/document/document.controller.php | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/document/document.controller.php b/modules/document/document.controller.php index bc25a71f2..0076f69df 100644 --- a/modules/document/document.controller.php +++ b/modules/document/document.controller.php @@ -274,6 +274,7 @@ class documentController extends document $obj->homepage = $logged_info->homepage; } // If the tile is empty, extract string from the contents. + $obj->title = htmlspecialchars($obj->title); settype($obj->title, "string"); if($obj->title == '') $obj->title = cut_str(trim(strip_tags(nl2br($obj->content))),20,'...'); // If no tile extracted from the contents, leave it untitled. From 9a7b7fa9ba72653b4c8cab8dd950e1a0f8dd93e0 Mon Sep 17 00:00:00 2001 From: bnu Date: Fri, 4 Sep 2015 15:54:32 +0900 Subject: [PATCH 5/5] version 1.8.9 --- config/config.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.inc.php b/config/config.inc.php index 3eb89230b..828c4925e 100644 --- a/config/config.inc.php +++ b/config/config.inc.php @@ -29,7 +29,7 @@ define('__ZBXE__', __XE__); /** * Display XE's full version. */ -define('__XE_VERSION__', '1.8.8'); +define('__XE_VERSION__', '1.8.9'); define('__XE_VERSION_ALPHA__', (stripos(__XE_VERSION__, 'alpha') !== false)); define('__XE_VERSION_BETA__', (stripos(__XE_VERSION__, 'beta') !== false)); define('__XE_VERSION_RC__', (stripos(__XE_VERSION__, 'rc') !== false));