2012-06-25 15 views
6

Según el formato de la solicitud, Symfony2 devuelve una respuesta del mismo tipo (html, css, json, etc.). Esto es muy apreciable. Pero si hago una plantilla en un formato definido y ejecuto el carácter de escape en ese contexto, pero eventualmente la página se representa en un formato diferente, ¿esto no generará riesgos de salida?Reproducir respuestas en un formato esperado

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

Existe el peligro de no intencionada crear un recurso que puede contener de salida peligrosos/inesperado? Esto es intencional? ¿Por qué?

Respuesta

6

En el caso de la documentación oficial de Symfony2, creo que es intencional. Pero si se hace una plantilla en un formato definido y ejecutar el carácter de escape en ese contexto, entonces se puede hacer cumplir la petición formatos permitidos los siguientes:

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

Este ejemplo pone de relieve el parámetro especial _format enrutamiento. Al usar este parámetro, el valor coincidente se convierte en el "formato de solicitud" del objeto Solicitud. En última instancia, el formato de solicitud se utiliza para cosas tales como establecer el tipo de contenido de la respuesta (por ejemplo, un formato de solicitud json se traduce en un tipo de contenido de aplicación/json). También se puede usar en el controlador para representar una plantilla diferente para cada valor de _format. El parámetro _format es una forma muy poderosa de presentar el mismo contenido en diferentes formatos. Read more...