Django - safely render HTML in template
我正在构建一个 django Web 应用程序,用户可以在其中通过 tinymce 编辑器提交文本。
对于该任务,我使用
问题:
像这样使用
1 | {{ richtext | safe }} |
如果不是,如何保证安全?
如果 html 来自可靠的来源,例如您自己,那么它(很可能)是安全的。但是如果您允许您网站的用户提交他们自己的 html 标记,那么它是不安全的。
但有时需要在 django 的模板中显示 html 标记,而别无选择,只能使用
"Sanitizing" 意味着您只保留数据中的安全 html 标签,并删除所有不安全或不需要的标签(如
为了清理数据,您可以使用
这是一个示例(取自文档):
1 2 3 4 5 | import bleach bleach.clean('an evil() example') # Output -> u'an evil() example' |
这个库还有 django 应用程序: