繁体   English   中英

如何使用Symfony在Twig中启用自动转义

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM