以预期的格式呈现响应

时间:2012-06-25 14:18:46

标签: php symfony

根据请求的格式,Symfony2返回相同类型的响应(html,css,json等)。这非常明显。但是如果我以定义的格式创建模板并在该上下文中执行转义字符,但最终页面以不同的格式呈现,那么生成输出会不会有危险吗?

示例:http://symfony.com/it/doc/current/book/index.html?_format=json

存在无意中创建可能包含危险输出/意外情况的资源的危险?这是故意的吗?为什么呢?

1 个答案:

答案 0 :(得分:6)

对于Symfony2官方文档,我认为这是故意的。但是,如果您以定义的格式创建模板并在该上下文中执行转义字符,那么您可以强制执行请求允许的格式,如下所示:

article_show:
  pattern:  /articles/{culture}/{year}/{title}.{_format}
  defaults: { _controller: AcmeDemoBundle:Article:show, _format: html }
  requirements:
    culture:  en|fr
    _format:  html|rss
    year:     \d+

此示例突出显示特殊的_format路由参数。使用此参数时,匹配的值将成为Request对象的“请求格式”。最终,请求格式用于诸如设置响应的Content-Type之类的事情(例如,json请求格式转换为Content-Type of application / json)。它也可以在控制器中用于为_format的每个值呈现不同的模板。 _format参数是以不同格式呈现相同内容的一种非常强大的方法。 Read more...