假设我从数据库加载一个值,该值返回如下内容:
<?php
//Zend_Controller_Action
public function indexAction()
{
$dbContent = "<p>Hello <?php echo $user?>!</p>";
$this->view->paragraph = $dbContent;
}
?>
怎么可能
<?php echo $user?>
会被渲染吗?
需要采取什么预防措施(安全问题、XXS)?
非常感谢!
==编辑:== 抱歉,我显然误解了我的问题。我实际上想说的是:
我想避免实现像 smarty 这样的模板引擎.
在我的项目中,会有字符串中包含 PHP 代码且需要解析的内容。
示例:
<?php
//Zend_Controller_Action
public function indexAction()
{
$dbContent = "<p>Hello <?php echo $user?>!</p>";
$this->view->paragraph = $dbContent;
}
<?php
//viewscript.phtml
$user = 'John Doe';
echo $this->paragraph;
?>
应该输出:
Hello John Doe!
是否有任何安全解决方案可以在没有外部模板引擎的情况下实现此目的?
再次感谢...:-)
最佳答案
如果找到解决方案here ,这似乎完全满足了我的需求。
感谢所有在这里回答的人,
==更新==
不幸的是,发布的链接已失效。然而,解决方案非常简单。据我记得,它经历了以下步骤:
- 从数据库中获取内容并将其保存在文件中
- 使用Zend_Cache检查该文件是否存在
- 如果文件存在,则简单地渲染它。如果没有,请转到步骤 1。
==更新二== 找到该页面的副本: archive.org
关于zend-framework - 最佳实践 : Zend View: Load content from database and render PHP-code included in content,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8019577/