1

我想显示用户键入的 html(来自 WYSIWYG)。

但是我在从 html 中删除 js 时遇到了一些问题。

这是我的看法:

def bad_view(request):
    # in real project we got it from user
    bad_html = '<p onclick="alert(0)">:((</p><script>alert(0);</script>'
    return render(request, 'template.html', {'bad_html': bad_html})

我的模板中的代码如下:

{{ bad_html|safe }}

bad_html 应该是这样的<p onclick="">:((</p>

从此 html 中删除所有 js的最佳方法是什么?

对于删除<script>,我可以使用正则表达式,但是 onclick 处理程序(和其他 js 处理程序)呢?

感谢您的建议!

4

2 回答 2

2

我推荐使用bleach python库,它旨在处理各种特殊情况,并为您的问题提供完整的解决方案

http://bleach.readthedocs.org/en/latest/index.html

于 2013-04-25T17:27:27.260 回答
0

我可以为 django https://www.djangopackages.com/grids/g/forms/建议一个预构建的解决方案吗? 大多数都包含某种形式的过滤器示例。我实际上正在研究 TinyMCE。

更多信息在这里在 Django 中为富文本字段使用安全过滤器

于 2013-04-25T16:45:21.897 回答