2012-06-25 75 views
6

根據請求的格式,Symfony2返回相同類型(html,css,json等)的響應。這非常明顯。但是,如果我以定義的格式創建模板並在該上下文中執行轉義字符,但最終頁面以不同格式呈現,這將不會冒生成輸出危險的風險?以預期格式呈現響應

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

有無意的危險創造的可能含有有害輸出/出乎意料的資源?這是故意的?爲什麼?

回答

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路由參數。使用此參數時,匹配的值將成爲請求對象的「請求格式」。最終,請求格式用於諸如設置響應的內容類型(例如,將json請求格式轉換爲應用程序/ json的內容類型)之類的事情。它也可以用於控制器爲_format的每個值呈現不同的模板。 _format參數是以不同格式呈現相同內容的一種非常強大的方式。 Read more...