首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mustache.php安全性

mustache.php安全性
EN

Stack Overflow用户
提问于 2012-11-13 22:36:01
回答 1查看 299关注 0票数 1

我正在构建一个应用程序,用户能够在文本区中输入Mustache标记,并在mustache.php和基于类的上下文的帮助下生成输出。

示例代码:

代码语言:javascript
复制
<?php
$m = new Mustache_Engine;
$chris = new Chris;
echo $m->render($CUSTOM_USER_INPUT_TEXT, $chris);

示例类上下文:

代码语言:javascript
复制
<?php
class Chris {
    public $name  = "Chris";
    public $value = 10000;
    private $test = '';

    public function taxed_value() {
        return $this->value - ($this->value * 0.4);
    }

    public $in_ca = true;
}

我的问题是:除了Chris公共方法和属性之外,用户是否有可能调用其他函数?(来自八字胡标记)

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-14 00:07:49

是的,呈现用户输入是安全的,只要您仔细控制呈现上下文。用户只能访问呈现上下文中的对象的公共属性和方法。

只是要小心你给你的用户访问的内容。他们将能够在他们可以遍历到的任何对象上调用任何方法。例如,如果克里斯有一辆车,暴露在Chris::$car上,他们可以通过{{ chris.car }}获得它。这意味着如果您使用ActiveRecord样式的域模型,则永远不应该将模型对象传递到呈现上下文中。否则,用户可以调用{{ chris.car.delete }}

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13362615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档