如何以安全的方式在模板中使用对象

时间:2010-09-18 08:54:30

标签: php security templates smarty dwoo

用于php的现代模板引擎(例如,dwoo或smarty)可以将对象用作变量。您可以使用{$ obj-> method()},这非常方便,而且我正在使用它。 但是,直接从ORM导出对象存在明显的安全问题,这些对象具有插入,删除等方法。 是否有任何理智的方法只将部分方法暴露给模板引擎?我在想包装器只暴露白名单的方法:

$aTplVars = array (new TplWrapper(new User($nUserId),  array('getAccount','getStatus')));

你在想什么(有明显的性能开销)?或者在某些现有的php模板引擎中有类似的东西吗?

1 个答案:

答案 0 :(得分:0)

创建后,你不能用PHP(或我所知的任何语言)“削弱”一个对象。使用对象看起来不错,但您应该在控制器中获取模板的相关数据并将其放入一个可以安全地分配给模板的数组中。