2012-06-25 13 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ルーティングパラメータを強調しています。このパラメータを使用すると、一致した値がRequestオブジェクトの「要求フォーマット」になります。最終的に、要求フォーマットは、応答のContent-Type(例えば、json要求フォーマットがContent-Typeのアプリケーション/ jsonに変換される)のようなものに使用される。 _formatの各値に対して別のテンプレートをレンダリングするためにコントローラで使用することもできます。 _formatパラメータは、同じコンテンツをさまざまな形式でレンダリングする非常に強力な方法です。 Read more...

関連する問題