根据请求的格式,Symfony2 返回相同类型的响应(html、css、json 等)。这是非常明显的。但是,如果我以定义的格式制作模板并在该上下文中执行转义字符,但最终页面以不同的格式呈现,这不会产生危险的输出吗?
示例:http ://symfony.com/it/doc/current/book/index.html?_format=json
是否存在无意创建可能包含危险输出/意外的资源的危险?这是故意的?为什么?
根据请求的格式,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)。它还可以在控制器中用于为 _format 的每个值呈现不同的模板。_format 参数是一种以不同格式呈现相同内容的非常强大的方法。阅读更多...