防止 Symfony 中的 XSS

Gia*_*dos 5 javascript xss symfony

当我在 Symfony2 中使用 wyswyg 编辑器显示文本区域中的数据时,如何防止 XSS?

我有一个带有tinyMCE编辑器的文本区域。我可以插入粗体、斜体的代码,然后我可以使用 twig 过滤器原始在浏览器中显示数据:

{{miArticulo.contenido|raw}}
Run Code Online (Sandbox Code Playgroud)

但是,当我在文本区域中编写脚本(例如警报)时,它也会在浏览器中呈现;

如何仅显示 HTML 中的安全元数据?我尝试用树枝过滤器自动转义环绕,但失败了:

{% autoescape 'html' %}{{miArticulo.contenido|raw}}{% endautoescape %}
Run Code Online (Sandbox Code Playgroud)

我可以显示安全内容 con twig 还是我应该尝试使用其他库,例如 HTMLPurifier

LPo*_*ski 1

在这种情况下,我使用这个捆绑包:

https://github.com/Exercise/HTMLPurifierBundle

当用户发送 HTML 时,在表单上使用它可能会获得最佳性能。(通过文档中描述的表单数据转换器)

据我所知,没有其他选择可以阻止将 js 放入 html 的所有巧妙方法。