在Symfony/Twig中转义tinyMCE javascript输出

在Symfony/Twig中转义tinyMCE javascript输出,javascript,symfony,escaping,tinymce,twig,Javascript,Symfony,Escaping,Tinymce,Twig,我在Symfony使用TinyMCE。一切正常,我将用户输入保存在数据库中,但我想让用户在显示消息时不在前端运行javascript。我试过了 {{ message.content|raw }} 但问题是它运行的是javascript代码 然后我试着 {% autoescape 'js' %} {{ message.content }} {% endautoescape %} 但它将javascript打印为奇怪的字符,如\x3C\x2Fp\x3E 如何将javascript代码打印

我在Symfony使用TinyMCE。一切正常,我将用户输入保存在数据库中,但我想让用户在显示消息时不在前端运行javascript。我试过了

  {{ message.content|raw }}
但问题是它运行的是javascript代码

然后我试着

{% autoescape 'js' %}
{{ message.content }}
{% endautoescape   %}
但它将javascript打印为奇怪的字符,如
\x3C\x2Fp\x3E

如何将javascript代码打印为纯文本?或者,如何显示格式正确的文本而不运行javascript部分

比如说,

<b>test</b> <script>alert()</script>
测试警报()
显示类似于


测试警报()

{{ message.content | striptags('<p><b><br>') | raw }}
{{message.content | striptags('
')| raw}

strip\u标签中的标签
是允许的标签。

我有一个类似的问题,尽管我决定完全删除。请看我的问题,并通过@pcm:回答:奇怪的是,以前没有人想到这一点。XSS攻击是最容易做到的。谢谢,我来看看。有没有办法恢复?我想允许任何东西除外,在里面写所有其他TyMyCE支持的HTML标签是很烦人的。在这种情况下,你可以使用<代码>替换<代码>:<代码> {{MasaGe.Cyf}替换({“”:“”,“”:“}”<原始} 。但是允许用户输入HTML标记是不安全的,考虑使用标记,或者,如果不适合你,那么使用类似html净化器的东西。为什么它不安全?我怎样才能让他们使用tinyMCE呢?因为如果你允许任何html标记,用户可以发送任何恶意代码,可以更改页面布局,添加div、样式等。你也可以在twig中使用html净化器包,或者在你将用户输入保存到数据库之前,甚至在db中创建额外的字段,在其中保存净化的安全输出以显示。