我正在编写一个 Web 应用程序,用户可以在其中创建自己的设计。最简单的方法是允许他们上传自己的 Jinja 2 模板。但是,我担心安全性。
我应该注意哪些事情?我应该为此设置自定义 Jinja 2 环境吗?
它不仅可以让人们添加任何 Javascript 代码,还可以在服务器上执行几乎任何 Python 代码。请查看http://jinja.pocoo.org/docs/sandbox/
如果您允许用户上传任意 jinja2 模板,则您允许他们任意 html 和 javascript,从而成为网络托管公司,并承担所有后果。
您还必须小心您授予他们访问权限的变量,以便私有用户数据(如果有)彼此分开。