2011-12-01 58 views
0

我们正在建立一个虚拟专用服务器(不是由我们托管),我们将在其上测试基于Django的Web应用程序。这些测试中生成的用户生成的内容将非常敏感。我们希望保持这些内容的加密,例如在备份媒体丢失的情况下。内容将被存储在MySQL或SQLite数据库中。Django网络应用程序的数据库加密,无需在服务器上存储密钥

据我所知,我们无法加密VPS的文件系统。如果我们使用诸如SQLcipher(http://sqlcipher.net/)之类的东西来加密数据库,有没有将密钥传递给Django而不将它存储在服务器上的方法?我们将为每个测试启动服务器,因此这部分不是问题。

谢谢!

回答

2

听起来就像你希望管理员用户手动输入密钥到表单中作为登录过程的一部分,并让Django使用它。

+0

是的,这听起来很合理。我试图找出如何做到这一点。有没有将密钥作为命令行参数的一些方法,而不是将它输入到settings.py中? –

+0

你不需要settings.py中的密钥本身,因为它会保存在服务器上。每次启动服务器时,都可以在命令行上手动导出环境变量,它只能在内存中使用,然后在settings.py中使用。 – Anentropic

+0

例如SQL_KEY =“xxx”;导出SQL_KEY,然后在settings.py ... import os; SQL_KEY = os.environ ['SQL_KEY'] – Anentropic

相关问题