2012-06-25 8 views
6

W zależności od formatu żądania Symfony2 zwraca odpowiedź tego samego typu (html, css, json itp.). To bardzo wyraźnie. Ale jeśli utworzę szablon w zdefiniowanym formacie i wykonam znak escape w tym kontekście, ale ostatecznie strona będzie renderowana w innym formacie, nie spowoduje to niebezpieczeństwa generowania danych wyjściowych?Odpowiedzi renderowania w oczekiwanym formacie

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

Istnieje niebezpieczeństwo nieumyślnie stworzyć zasób, który może zawierać niebezpieczne wyjście/nieoczekiwany? To jest zamierzone? Czemu?

Odpowiedz

6

W przypadku oficjalnej dokumentacji Symfony2 myślę, że jest to celowe. Ale jeśli szablon w określonym formacie i wykonać znak ucieczki w tym kontekście, to można wymusić prośbę dozwolony formaty następująco:

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

Ten przykład wskazuje na szczególną parametr _format routingu. W przypadku użycia tego parametru dopasowana wartość staje się "formatem żądania" obiektu żądania. Ostatecznie format żądania jest używany do takich rzeczy, jak ustawienie typu zawartości odpowiedzi (np. Format żądania json przekłada się na Content-Type aplikacji/json). Może być również użyty w kontrolerze do renderowania innego szablonu dla każdej wartości _format. Parametr _format to bardzo wydajny sposób renderowania tej samej treści w różnych formatach. Read more...

Powiązane problemy