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

ブリーチ 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 に答える