Symfony 1.4有没有办法逃避视图中的所有对象(例如表单的对象)?

时间:2014-08-29 16:23:27

标签: security escaping symfony-1.4

示例行动

$object = new myObject();
$object->setName("Darth <b>Vader</b>");
$this->form = new myObjectForm($object)

现在在视图中:

echo $form->getObject()->getName();

这将输出名称NOT escaped。

好的,我可以将动作改为:

$this->object = new myObject();
$this->object->setName("Darth <b>Vader</b>");
$this->form = new myObjectForm($this->object)

现在看来:

echo $object->getName();

这将输出名称转义,精彩;)

但是,是否有自动获取$ form-&gt; getObject() - &gt; getName()的方式?

1 个答案:

答案 0 :(得分:0)

当您直接从Form获取对象时,它不会自动转义,您应该通过操作传递需要转义的对象:

$this->object = $this->form->getObject();

最终,如果您确实需要在视图中执行此操作,则可以将对象从Form传递给ObjectDecorator以进行转义:

$escaped = new sfOutputEscaperObjectDecorator(ESC_SPECIALCHARS,$form->getObject());
echo $escaped->getName(); // Will return escaped value