我正在使用django ckeditor。输入其编辑器的任何文本/内容都会在网页上呈现原始html输出。
for ex:这是在网页上呈现ckeditor字段(RichTextField)的输出;
<p><span style="color:rgb(0, 0, 0)">this is a test file ’s forces durin</span><span style="color:rgb(0, 0, 0)">galla’s good test is one that fails Thereafter, never to fail in real environment. </span></p>
我一直在寻找解决方案很长一段时间但却找不到一个解决方案:(有些问题类似,但没有一个能够提供帮助。如果提供的任何更改都会有帮助。需要改变的确切位置。不用说我是新手。
由于
答案 0 :(得分:2)
您需要在模板中将包含html代码段的相关变量标记为safe
显然,您应该确定该文本来自可信用户且 是安全的,因为使用safe
过滤器会禁用Django默认应用的安全功能(自动加载)
如果您的ckeditor是评论表单的一部分,并且您将输入的文本标记为safe
,则任何有权访问该表单的人都可以在您的页面中注入Javascipt和其他(可能令人讨厌的)内容。
官方文档中详细解释了整个故事:https://docs.djangoproject.com/en/dev/topics/templates/#automatic-html-escaping