1

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

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

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

4

1 回答 1

3

看一眼:

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

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

但是,您应该尽量避免在控制器中生成 html。花点时间把它移到一个 php 模板中,然后让模板生成器来处理这些事情。

我确实花了一些时间来看看是否可以只抓取引擎本身,但它没有直接作为服务公开。您可以这样做: $engine = $this->get('templating')->getEngine($name) 但遗憾的是 getEngine() 受到保护。所以我不知道有什么明显的方法可以得到引擎。

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

于 2012-04-24T14:13:52.953 回答