我正在构建一个多用户 Web 应用程序。每个用户都可以在我的应用程序下拥有自己的站点。我正在考虑如何允许用户在没有安全问题的情况下修改模板?我已经评估了一些 python 模板引擎。例如,genshi,它是一个非常棒的模板引擎,但是允许用户修改 genshi 模板可能是危险的。它有这样的语法:
<?python
?>
这种语法允许你运行任何你想要 python 可以做的事情。我注意到它似乎可以通过传递一些参数来关闭。但仍有很多潜在的问题。例如,用户可以访问内置函数和传递变量的方法。例如,如果我将 ORM 对象传递给模板。它可能包含一些我不想让用户触摸它的方法和变量。可能是这样的:
site.metadata.connection.execute("drop table xxx")
所以我的问题是如何允许用户在没有安全问题的情况下修改他们网站的模板?可以使用任何 python 模板引擎。
谢谢。