php - 以预期的格式呈现响应

标签 php symfony

根据请求的格式,Symfony2 返回相同类型的响应(html、css、json 等)。这是非常可观的。但是,如果我以定义的格式制作模板并在该上下文中执行转义字符,但最终页面以不同的格式呈现,这是否会产生危险的输出?

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

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

最佳答案

对于 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 请求格式转换为 application/json 的 Content-Type)。它还可以在 Controller 中用于为每个 _format 值呈现不同的模板。 _format 参数是一种以不同格式呈现相同内容的非常强大的方法。 Read more...

关于php - 以预期的格式呈现响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11191078/

相关文章:

php - API 平台 : Filtering Custom Data Provider

php - opencart 错误类 'Log'

php - 使用 CURL 访问我的家庭网络

php - 无法从 Symfony 中的命名路由生成 URL

javascript - WordPress 中帖子的关联查询 - 两个问题

symfony - 在 Symfony2 中重命名应用程序文件夹

php - 带有可空/可选连接的 Doctrine 查询

php - twig - 在 for 循环中构建数组

php - 如何阅读或逆向工程 composer.lock 文件?

php - 在 IE6 中下载文件