gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 06:45:08 27 4
gpt4 key购买 nike

我在我的 Symfony 项目中使用 Twig。

Symfony 应该启用 autoescape by default .但是默认情况下它不会执行此操作,在我手动启用它后它仍然无法工作。

我已将 Twig 配置为自动转义所有变量。

twig:
autoescape: true

但这不会过滤任何东西。 HTML 和 JavaScript 都不会被转义。没有自定义 autoescape_service,我也没有使用 |raw{ autoescape false } 过滤变量。

我仔细检查了生成的配置以确保该值没有被覆盖。在 twig 服务定义下的 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 }} block 被添加到一些字段中。一段时间后,在自动转义 block 中添加了一个 |raw 过滤器,以再次禁用某些字段的自动转义。

我错过了不必要的自动转义 block 中的 |raw 过滤器。 (我一定是跳过了内容,认为 autoescape 设置为 true,但是稍后应用了 |raw 过滤器,因此内容保持原始状态。

关于php - 如何使用 Symfony 在 Twig 中启用自动转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25667337/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com