用户定义的模板Django
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用户定义的模板Django相关的知识,希望对你有一定的参考价值。
是否有一种方法可以使应用程序用户在Django应用程序中创建自己的模板?一个示例就是MailChimp如何使用户创建自己的自定义电子邮件模板。
目前,我正在考虑创建一个模型来捕获用户想要显示的信息。该模型可以指向模板,并使用用户想要显示的信息填充模板。但是还有更好的方法吗?
如docs中所述:
警告
模板系统对于不受信任的模板作者是不安全的。例如,网站不应该允许其用户提供自己的模板,因为模板作者可以执行诸如XSS攻击和访问可能包含敏感信息的模板变量属性之类的操作。
即使模板存储在模型中,也要由用户定义模板,这可能会导致xss漏洞,并且很难安全地实施。
[另一个回答者注意到来自the docs的警告,包括:
可能包含敏感信息的模板变量的访问属性
这是一个big问题。所有Django表通常以“魔术”方式链接在一起。模板系统自身不涉及授予已验证用户的权限。如果可以处理模板,则它将处理所有可能的内容-即,如果表之间存在链接,它将跟随它。这意味着,诸如与客户记录链接的客户记录,与供应商记录链接到项目记录的用户记录之类的东西,可以允许任何用户(或至少任何具有创建模板权限的用户)查看几乎所有数据。在系统中。至少使用标准的User软件包,他们将看不到用户密码。但是他们几乎可以做到任何其他事情。例如,他们也许可以找出谁在使用该系统,该用户付了多少钱,管理员的姓名(对于网络钓鱼非常有用!),等等。
因此,尽管创建用户定义的Django模板系统相对容易,但not是个好主意,至少在任何可公开访问的系统上都不是。
以上是关于用户定义的模板Django的主要内容,如果未能解决你的问题,请参考以下文章
DjangoDjango 如何使用 Django设置的日志?