我有一个带有jwysiwyg编辑器的表单。看一下,它可以使用像SO这样的格式化按钮来使用基本格式化的html标签。提交表单后,我注意到它按原样保存到数据库中,而如果我将<iframe> ... </iframe>
之类的内容输入编辑器,我会注意到它在表格内部进行了html编码。
现在,当我需要输出用户提交的内容时,我可以安全地使用{{ output|safe }}
来显示格式化的文本吗?
这是否足够合理或我应该如何纠正?
答案 0 :(得分:3)
仅在首先html-escape数据时才使用safe
过滤器。否则,您应该使用escape
。如果您希望用户能够使用html标记输入数据,您可以尝试清理输入以防止用户使用<iframe>
,<script>
等,但允许其他标记为白名单,然后将其标记为safe
。