Django:从用户输入和显示中保存数据

时间:2011-05-11 05:12:23

标签: python django

我有一个带有jwysiwyg编辑器的表单。看一下,它可以使用像SO这样的格式化按钮来使用基本格式化的html标签。提交表单后,我注意到它按原样保存到数据库中,而如果我将<iframe> ... </iframe>之类的内容输入编辑器,我会注意到它在表格内部进行了html编码。

现在,当我需要输出用户提交的内容时,我可以安全地使用{{ output|safe }}来显示格式化的文本吗?

这是否足够合理或我应该如何纠正?

1 个答案:

答案 0 :(得分:3)

仅在首先html-escape数据时才使用safe过滤器。否则,您应该使用escape。如果您希望用户能够使用html标记输入数据,您可以尝试清理输入以防止用户使用<iframe><script>等,但允许其他标记为白名单,然后将其标记为safe