我想显示用户输入的html(来自所见即所得)。Python和Django。从html中删除所有js
但我有一些从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>
什么是最好方法,从删除所有的JS这个HTML?
对于删除<script>
我可以使用正则表达式,但onclick处理程序(和其他js处理程序)呢?
感谢您的建议!
你切不可想想**去掉**。你必须考虑**允许**。它更安全。 – antoyo 2013-04-25 16:26:00
搜索“python html sanitizer”,选择你最喜欢的一个。但是Antoyo是对的。积极地允许尽可能少的人力。 (如在白名单中的个人属性级别及其值) – millimoose 2013-04-25 16:48:10
更改此: bad_html ='
:((
':) :) – 2013-04-25 21:25:41