Django: 保存用户输入的数据并显示

0 投票
1 回答
600 浏览
提问于 2025-04-16 17:24

我有一个表单,里面有一个jwysiwyg编辑器。看起来它可以使用一些基本的HTML格式标签,就像Stack Overflow那样通过格式化按钮来实现。当我提交表单时,我发现内容直接保存到数据库里,而如果我在编辑器里输入像<iframe> ... </iframe>这样的东西,它在数据库里会被编码成HTML格式。

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

这样做安全吗?或者我该怎么做才能更安全呢?

1 个回答

3

只有在你先把数据进行HTML转义后,才可以使用safe过滤器。否则,你应该使用escape。如果你希望用户能够输入带有HTML标签的数据,你可以尝试清理这些输入,以防止用户使用<iframe><script>等标签,但可以允许其他标签在白名单中,然后再标记为safe

撰写回答