openrat-cms

# OpenRat Content Management System
git clone http://git.code.weiherhei.de/openrat-cms.git
Log | Files | Refs

commit 8f7f20f0911cf0ff5c71fca6c75a3634a475ebbc
parent cef1cc32abde4babafee10e741c108c38c3a840e
Author: Jan Dankert <develop@jandankert.de>
Date:   Sun, 10 Nov 2019 22:38:49 +0100

Log a warning, if code execution is requested, but disabled by configuration.

Diffstat:
modules/cms-core/model/Value.class.php | 23++++++++++++++++-------
modules/util/Code.class.php | 5+++--
modules/util/Macro.class.php | 1+
3 files changed, 20 insertions(+), 9 deletions(-)

diff --git a/modules/cms-core/model/Value.class.php b/modules/cms-core/model/Value.class.php @@ -1241,8 +1241,11 @@ SQL // Die Ausführung von benutzer-erzeugtem PHP-Code kann in der // Konfiguration aus Sicherheitsgründen deaktiviert sein. if ( $conf['security']['disable_dynamic_code'] ) - break; - + { + Logger::warn("Execution of dynamic code elements is disabled by configuration. Set security/disable_dynamic_code to true to allow this"); + break; + } + $this->page->load(); // Das Ausführen geschieht über die Klasse "Code". @@ -1254,13 +1257,19 @@ SQL $code->delOutput(); $code->code = $this->element->code; - // Jetzt ausfuehren des temporaeren PHP-Codes - $code->execute(); + ob_start(); - // Ausgabe ermitteln. - $inhalt = $code->getOutput(); + // Jetzt ausfuehren des temporaeren PHP-Codes + $code->execute(); - break; + $output = ob_get_contents(); + ob_end_clean(); + + // Ausgabe ermitteln. + $inhalt = $output; + + + break; // Makros (dynamische Klassen) diff --git a/modules/util/Code.class.php b/modules/util/Code.class.php @@ -23,13 +23,14 @@ */ class Code extends Macro { - var $code = ''; + public $code; function execute() { - if ( substr($this->code,0,5) != '<?php' ) + if ( substr($this->code,0,2) != '<?' ) $this->code = "<?php\n".$this->code."\n?>"; + Logger::trace('code: Executing PHP Code: '."\n".$this->code); $tmp = FileUtils::getTempDir().'/openratMacro'; $tmp .= '.code.php.tmp'; diff --git a/modules/util/Macro.class.php b/modules/util/Macro.class.php @@ -124,6 +124,7 @@ class Macro /** * Löscht die bisher erzeugte Ausgabe. + * @deprecated useless */ public function delOutput() {