我想顯示用戶輸入的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