aboutsummaryrefslogtreecommitdiffstats
path: root/3dparty/Smarty/sysplugins/smarty_security.php
diff options
context:
space:
mode:
Diffstat (limited to '3dparty/Smarty/sysplugins/smarty_security.php')
-rw-r--r--3dparty/Smarty/sysplugins/smarty_security.php229
1 files changed, 0 insertions, 229 deletions
diff --git a/3dparty/Smarty/sysplugins/smarty_security.php b/3dparty/Smarty/sysplugins/smarty_security.php
deleted file mode 100644
index 581ea084528..00000000000
--- a/3dparty/Smarty/sysplugins/smarty_security.php
+++ /dev/null
@@ -1,229 +0,0 @@
-<?php
-/**
- * Smarty plugin
- *
- * @package Smarty
- * @subpackage Security
- * @author Uwe Tews
- */
-
-/**
- * This class does contain the security settings
- */
-class Smarty_Security {
- /**
- * This determines how Smarty handles "<?php ... ?>" tags in templates.
- * possible values:
- * <ul>
- * <li>Smarty::PHP_PASSTHRU -> echo PHP tags as they are</li>
- * <li>Smarty::PHP_QUOTE -> escape tags as entities</li>
- * <li>Smarty::PHP_REMOVE -> remove php tags</li>
- * <li>Smarty::PHP_ALLOW -> execute php tags</li>
- * </ul>
- *
- * @var integer
- */
- public $php_handling = Smarty::PHP_PASSTHRU;
-
- /**
- * This is the list of template directories that are considered secure.
- * $template_dir is in this list implicitly.
- *
- * @var array
- */
- public $secure_dir = array();
-
-
- /**
- * This is an array of directories where trusted php scripts reside.
- * {@link $security} is disabled during their inclusion/execution.
- *
- * @var array
- */
- public $trusted_dir = array();
-
-
- /**
- * This is an array of trusted static classes.
- *
- * If empty access to all static classes is allowed.
- * If set to 'none' none is allowed.
- * @var array
- */
- public $static_classes = array();
-
- /**
- * This is an array of trusted PHP functions.
- *
- * If empty all functions are allowed.
- * To disable all PHP functions set $php_functions = null.
- * @var array
- */
- public $php_functions = array('isset', 'empty',
- 'count', 'sizeof','in_array', 'is_array','time','nl2br');
-
- /**
- * This is an array of trusted PHP modifers.
- *
- * If empty all modifiers are allowed.
- * To disable all modifier set $modifiers = null.
- * @var array
- */
- public $php_modifiers = array('escape','count');
-
- /**
- * This is an array of trusted streams.
- *
- * If empty all streams are allowed.
- * To disable all streams set $streams = null.
- * @var array
- */
- public $streams = array('file');
- /**
- * + flag if constants can be accessed from template
- */
- public $allow_constants = true;
- /**
- * + flag if super globals can be accessed from template
- */
- public $allow_super_globals = true;
- /**
- * + flag if the {php} and {include_php} tag can be executed
- */
- public $allow_php_tag = false;
-
- public function __construct($smarty)
- {
- $this->smarty = $smarty;
- }
- /**
- * Check if PHP function is trusted.
- *
- * @param string $function_name
- * @param object $compiler compiler object
- * @return boolean true if function is trusted
- */
- function isTrustedPhpFunction($function_name, $compiler)
- {
- if (isset($this->php_functions) && (empty($this->php_functions) || in_array($function_name, $this->php_functions))) {
- return true;
- } else {
- $compiler->trigger_template_error ("PHP function '{$function_name}' not allowed by security setting");
- return false;
- }
- }
-
- /**
- * Check if static class is trusted.
- *
- * @param string $class_name
- * @param object $compiler compiler object
- * @return boolean true if class is trusted
- */
- function isTrustedStaticClass($class_name, $compiler)
- {
- if (isset($this->static_classes) && (empty($this->static_classes) || in_array($class_name, $this->static_classes))) {
- return true;
- } else {
- $compiler->trigger_template_error ("access to static class '{$class_name}' not allowed by security setting");
- return false;
- }
- }
- /**
- * Check if modifier is trusted.
- *
- * @param string $modifier_name
- * @param object $compiler compiler object
- * @return boolean true if modifier is trusted
- */
- function isTrustedModifier($modifier_name, $compiler)
- {
- if (isset($this->php_modifiers) && (empty($this->php_modifiers) || in_array($modifier_name, $this->php_modifiers))) {
- return true;
- } else {
- $compiler->trigger_template_error ("modifier '{$modifier_name}' not allowed by security setting");
- return false;
- }
- }
- /**
- * Check if stream is trusted.
- *
- * @param string $stream_name
- * @param object $compiler compiler object
- * @return boolean true if stream is trusted
- */
- function isTrustedStream($stream_name)
- {
- if (isset($this->streams) && (empty($this->streams) || in_array($stream_name, $this->streams))) {
- return true;
- } else {
- throw new SmartyException ("stream '{$stream_name}' not allowed by security setting");
- return false;
- }
- }
-
- /**
- * Check if directory of file resource is trusted.
- *
- * @param string $filepath
- * @param object $compiler compiler object
- * @return boolean true if directory is trusted
- */
- function isTrustedResourceDir($filepath)
- {
- $_rp = realpath($filepath);
- if (isset($this->smarty->template_dir)) {
- foreach ((array)$this->smarty->template_dir as $curr_dir) {
- if (($_cd = realpath($curr_dir)) !== false &&
- strncmp($_rp, $_cd, strlen($_cd)) == 0 &&
- (strlen($_rp) == strlen($_cd) || substr($_rp, strlen($_cd), 1) == DS)) {
- return true;
- }
- }
- }
- if (!empty($this->smarty->security_policy->secure_dir)) {
- foreach ((array)$this->smarty->security_policy->secure_dir as $curr_dir) {
- if (($_cd = realpath($curr_dir)) !== false) {
- if ($_cd == $_rp) {
- return true;
- } elseif (strncmp($_rp, $_cd, strlen($_cd)) == 0 &&
- (strlen($_rp) == strlen($_cd) || substr($_rp, strlen($_cd), 1) == DS)) {
- return true;
- }
- }
- }
- }
-
- throw new SmartyException ("directory '{$_rp}' not allowed by security setting");
- return false;
- }
-
- /**
- * Check if directory of file resource is trusted.
- *
- * @param string $filepath
- * @param object $compiler compiler object
- * @return boolean true if directory is trusted
- */
- function isTrustedPHPDir($filepath)
- {
- $_rp = realpath($filepath);
- if (!empty($this->trusted_dir)) {
- foreach ((array)$this->trusted_dir as $curr_dir) {
- if (($_cd = realpath($curr_dir)) !== false) {
- if ($_cd == $_rp) {
- return true;
- } elseif (strncmp($_rp, $_cd, strlen($_cd)) == 0 &&
- substr($_rp, strlen($_cd), 1) == DS) {
- return true;
- }
- }
- }
- }
-
- throw new SmartyException ("directory '{$_rp}' not allowed by security setting");
- return false;
- }
-}
-
-?> \ No newline at end of file