哪个Python模板引擎可以安全地被不受信任的用户使用?

3

我正在寻找一个好的独立Python模板引擎,它能够防止代码注入,并可用于允许不受信任的用户编写和编辑模板的应用程序。有人能推荐这样的引擎吗?


你可以看一下jinja http://jinja.pocoo.org/ - starcorn
1
让不受信任的用户访问站点模板听起来很可怕。 - ayanami
这在一定程度上取决于您在视图上下文中包含/可用的变量/命名空间,这些变量/命名空间将提供给模板。例如,如果您使类似os这样的东西可用(直接或通过某个导入它的其他模块或变量隐式访问),那么这将是危险的。 - Preet Kukreti
@ayanami,我正在寻找一个安全的模板引擎,用于我的Django项目的组件中,员工可以编写电子邮件模板,使用占位符来代替客户的全名、电子邮件地址、相关信息等。用户编写模板很有用;我不希望一些狡猾的人通过模板引擎来利用我的网站。 - sleblanc
1个回答

0

starcom 引用了 jinja。

jinja 网站 上说,其 "features" 有:

沙盒执行模式。对模板执行的每个方面进行监控,并明确列出白名单或黑名单,以满足首选条件。这使得执行不受信任的模板成为可能。


沙盒本身并不是完美安全的解决方案。在使用沙盒时请记住这些事情。 - Evan Carroll

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接