[英]How to enable autoescaping in Twig using Symfony
我在Symfony项目中使用Twig。
Symfony 默认应启用自动转义 。 但是,默认情况下它不会执行此操作,并且在我手动启用它后仍然无法正常工作。
我已将Twig配置为自动转义所有变量。
twig:
autoescape: true
但这不会过滤任何内容。 HTML和JavaScript都不能逃脱。 没有自定义的autoescape_service,我不使用|raw
或{ autoescape false }
过滤变量。
我仔细检查了生成的配置,以确保该值未被覆盖。 在细枝服务定义下的app / cache / dev / appDevDebugProjectContainer.xml中 ,参数如下:
<argument key="debug">true</argument>
<argument key="strict_variables">false</argument>
<argument key="cache">false</argument>
<argument key="autoescape">true</argument>
<argument key="exception_controller">twig.controller.exception:showAction</argument>
<argument key="autoescape_service">null</argument>
<argument key="autoescape_service_method">null</argument>
<argument key="charset">UTF-8</argument>
Twig是否有另一种方法可以覆盖我所缺少的自动转义选项? 还是我可以强制启用它?
在浪费时间试图找到解决方案后,我总是会问我问题。
在开发过程中,twig.autoescape设置为false。 后来需要XSS保护。 并且{{autoescape}}块已添加到某些字段中。 一段时间后,在|raw
转义块中添加了|raw
过滤器,以再次禁用某些字段上的自动转义。
我错过了不必要的自动转义块中的|raw
过滤器。 (我肯定以自动转义设置为true的方式跳过了该内容,但是|raw
过滤器稍后应用,因此内容保持原始。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.