渲染用户输入的Django模板有哪些安全隐患?

时间:2014-01-21 19:19:05

标签: django security django-templates

对于内部公司webapp,我希望用户能够编辑存储为模型的Django模板,然后使用屏幕预览来呈现表单电子邮件。这样做的安全风险是什么?

1 个答案:

答案 0 :(得分:2)

这完全取决于您在其上下文中为您的模板访问权限提供哪些数据。可能确定的两个方面是:

  • 上下文处理器(在settings.py文件中定义)
  • views,将上下文数据传递给渲染函数

如果您将设置对象之类的内容传递给您的上下文(不应该这样做,但经常这样做),那么用户将能够获得类似数据库凭据的内容。

此外,如果您在调试模式下运行(同样,您不应该在prod中运行),强制异常会导致显示包含敏感数据的调试页面。

如果您只是使用django的默认上下文处理器,并且没有通过视图将任何敏感数据放入上下文中,那么就安全性而言,您应该相当安全。