如何在symfony2中从控制器调用转义函数

时间:2012-04-24 12:31:57

标签: symfony xss

如何从symfony2中的控制器调用转义函数?对于视图文件(PHP引擎),它被称为:

Hello <?php echo $view->escape($name) ?>

我需要发送一个html片段集来查看和转义来自XSS攻击的一些变量。这个转义函数只是htmlspecialchars()或htmlentities()。如果不可能,那么我将不得不为它调用htmlspecialchars。

1 个答案:

答案 0 :(得分:3)

看看:

// Symfony\Component\Templating\PhpEngine.php
htmlspecialchars($value, ENT_QUOTES, $that->getCharset(), false)

所以是的,最终使用了htmlspecialchars。 PhpEngine还支持转义其他类型的输出,例如javascript。

但是,您应该尽量避免在控制器中生成html。花点时间将它移动到一个php模板,让模板者担心这类东西。

我确实花了一些时间来看看是否有可能只是抓住引擎本身,但它并没有直接暴露为服务。你可以这样做:$ engine = $ this-&gt; get('templating') - &gt; getEngine($ name)但遗憾的是getEngine()受到保护。所以我不知道任何明显的方法来获得引擎。

但同样,最好让模板引擎按设计工作。

相关问题