如何从 symfony2 的控制器中调用转义函数?对于视图文件(PHP 引擎),它被称为:
Hello <?php echo $view->escape($name) ?>
我需要发送一个 html 片段集来查看和逃避 XSS 攻击中的一些变量。难道这个转义函数只是一个htmlspecialchars ()或者htmlentities ()。如果不可能,那么我将不得不为此调用 htmlspecialchars。
如何从 symfony2 的控制器中调用转义函数?对于视图文件(PHP 引擎),它被称为:
Hello <?php echo $view->escape($name) ?>
我需要发送一个 html 片段集来查看和逃避 XSS 攻击中的一些变量。难道这个转义函数只是一个htmlspecialchars ()或者htmlentities ()。如果不可能,那么我将不得不为此调用 htmlspecialchars。
看一眼:
// Symfony\Component\Templating\PhpEngine.php
htmlspecialchars($value, ENT_QUOTES, $that->getCharset(), false)
所以是的,最终使用 htmlspecialchars。PhpEngine 还支持转义其他类型的输出,例如 javascript。
但是,您应该尽量避免在控制器中生成 html。花点时间把它移到一个 php 模板中,然后让模板生成器来处理这些事情。
我确实花了一些时间来看看是否可以只抓取引擎本身,但它没有直接作为服务公开。您可以这样做: $engine = $this->get('templating')->getEngine($name) 但遗憾的是 getEngine() 受到保护。所以我不知道有什么明显的方法可以得到引擎。
但同样,最好让模板引擎按设计工作。