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:
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()
{