Django Web应用程序的数据库encryption,无需在服务器上存储密钥

我们正在build立一个虚拟私人服务器(不是我们托pipe的),我们将在这个服务器上testing我们基于Django的web应用程序。 在这些testing中产生的用户生成的内容将非常敏感。 我们希望保持这个内容的encryption,例如在备份媒体丢失的情况下。 内容将被存储在MySQL或SQLite数据库中。

据我了解,我们不能encryptionVPS的文件系统。 如果我们使用类似SQLcipher( http://sqlcipher.net/ )的方式encryption数据库,有没有办法将密钥传递给Django而不将它存储在服务器上呢? 我们将启动每个testing的服务器,所以这部分不是一个问题。

正如你所说的,你不能encryptionVPS的文件系统。 我不知道哪个function提供了您的VPS,但是您可以尝试创build第二个安装在/ var / lib / mysql(对于mysql服务器)的文件系统并对其进行encryption(例如使用LUKS软件)。

另一种方法是使用VPS的文件创build一个encryption的循环设备文件系统,并将其挂载到/ var / lib / mysql; 这里有一些这个解决scheme的参考https://wiki.archlinux.org/index.php/Dm-crypt/Encrypting_a_non-root_file_system