php Symfony2 альтернативный фильтр для raw

1

Привет, я разрабатываю приложение с symfony2. и для контроля качества использовалась аналитическая лаборатория sensio. но ошибка, которую я получаю, ставит меня в тупик. это ошибка, которую я получаю:

Использование фильтра raw или блока {% autoescape false%} в шаблоне Twig предоставляет пользователям возможность использования сценариев Cross-Site Scripting (XSS)

мой вопрос - какой фильтр я могу использовать вместо raw?

{% if (value is not iterable and value matches '/^(function|\{)/i') %}{{ value|raw }}{% else %}{{ value|json_encode|raw }}{% endif %};

благодаря

Теги:
twig

2 ответа

2
Лучший ответ

Вы можете создать расширение Twig с помощью специального фильтра (например, с именем jscode) с вашей логикой и пометить его как безопасный для html, а затем просто использовать:

{% value|jscode %}
1

Необработанные фильтр существует по причине, так что если вы полностью уверены в том, что будет в value, вы можете просто продолжать использовать его.

Альтернативный фильтр действительно зависит от того, что вы хотите разрешить или нет; как предположил @Yassine, настраиваемый фильтр, вероятно, является хорошей идеей, поскольку он имеет дополнительное преимущество в том, что вы можете переместить всю логику из своего макета.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню