如何从symfony2中的控制器调用转义函数?对于视图文件(PHP引擎),它被称为:
Hello <?php echo $view->escape($name) ?>
我需要发送一个html片段集来查看和转义来自XSS攻击的一些变量。这个转义函数只是htmlspecialchars()或htmlentities()。如果不可能,那么我将不得不为它调用htmlspecialchars。
答案 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()受到保护。所以我不知道任何明显的方法来获得引擎。
但同样,最好让模板引擎按设计工作。