您好我正在使用symfony2开发应用程序。并且用于质量控制使用了sensio实验室的洞察力。 但是我得到的错误让我感到茫然。这是我得到的错误:
在Twig模板中使用原始过滤器或{%autoescape false%}块会将用户暴露给跨站点脚本(XSS)攻击
我的问题是我可以使用什么过滤器而不是原始的?
{% if (value is not iterable and value matches '/^(function|\{)/i') %}{{ value|raw }}{% else %}{{ value|json_encode|raw }}{% endif %};
感谢
答案 0 :(得分:2)
您可以使用自己的逻辑创建自定义过滤器(例如名为jscode
)的Twig extension并将其标记为safe for html,然后使用:
{% value|jscode %}
答案 1 :(得分:1)
原始过滤器存在是有原因的,所以如果您完全确定value
中的内容,您可以继续使用它。
替代过滤器实际上取决于您想要或不允许的内容;正如@Yassine建议的那样,自定义过滤器可能是一个好主意,因为它具有额外的优势,可以将整个逻辑移出布局。