2012-07-03 89 views
-1

出于安全原因,我不想让所有数据库信息都以明文形式存储在settings.py中。我想在Django服务器启动时将信息加载到内存中(即设置DATABASE设置变量)。Django - 启动时配置数据库

我该怎么做?

编辑:我认为这里有一个误解。这个想法是划分安全。如果攻击者成功访问django机器,我不希望他们能够访问数据库(在不同的机器上)。这并非不合理。显然,当机器重新启动时,信息将不得不重新投入 - 但这是完全划分的成本。采用这种方法,违反django服务器机器将不会影响数据的安全性。

+0

在这种情况下,您是否还没有在纯文本中提供此数据库信息(仅在不同的文件中,比如说您的web服务器配置)?只要你不与错误的人分享信息,我认为不存在安全问题。 –

+0

请参阅编辑。我不想将信息保存在任何地方 - 我想在服务器启动时手动将其放入。 – guywhoneedsahand

+0

好的。你面临的问题是,在启动时将这些额外的选项传递给你的web服务器(apache,nginx)并不那么简单。老实说,我没有看到一个真正的方法来实现这一点,没有一些复杂的解决方案。 –

回答

-1

您可以将数据库设置移动到另一个文件,但您获得了什么?详细信息需要存储在某处:服务器无法将详细信息加载到内存中,然后删除从中读取详细信息的文件,因为在下次重新启动时它将无法连接到数据库。

它也会不必要地使您的系统复杂化,因为当有人可以读取源时,系统已经被入侵。除了将所有密码(以及类似的细节,如API密钥)移动到其他地方的特殊文件之外,您应该更加担心这一点。

+0

请参阅编辑 - 我不想将信息保存在任何地方 - 我想在服务器启动时手动将其放入。 – guywhoneedsahand