2

django ckeditor を使用しています。エディターに入力されたテキスト/コンテンツは、Web ページに未加工の HTML 出力をレンダリングします。

例: これは Web ページの ckeditor フィールド (RichTextField) のレンダリングされた出力です。

<p><span style="color:rgb(0, 0, 0)">this is a test file &rsquo;s forces durin</span><span style="color:rgb(0, 0, 0)">galla&rsquo;s good test is one that fails Thereafter, never to fail in real environment.&nbsp;</span></p>

私は長い間解決策を探していましたが、解決策を見つけることができませんでした:(似たような質問がいくつかありますが、どれも役に立ちませんでした.提案された変更が正確な場所とともに提供されていると助かります.言うまでもなく、私は初心者です。

ありがとう

4

1 に答える 1

2

テンプレートの html スニペットを含む関連変数を次のようにマークする必要があります。safe

明らかに、テキストが信頼できるユーザーからのものであり、安全であることを確認する必要がありsafeます。フィルターを使用すると、Django がデフォルトで適用するセキュリティ機能 (自動エスケープ) が無効になるためです。

あなたの ckeditor がコメント フォームの一部であり、入力したテキストを としてマークした場合safe、フォームにアクセスできる人は誰でも Javascipt やその他の (潜在的に厄介な) ものをページに挿入できます。

全体の話は、公式ドキュメントでかなりよく説明されています: https://docs.djangoproject.com/en/dev/topics/templates/#automatic-html-escaping

于 2014-11-27T21:26:55.713 に答える