2

我正在使用 django ckeditor。输入其编辑器的任何文本/内容都会在网页上呈现原始 html 输出。

例如:这是网页上 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 回答