首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在app上的Django应用程序上存储客户端机密

在app上的Django应用程序上存储客户端机密
EN

Stack Overflow用户
提问于 2014-11-30 14:06:54
回答 2查看 835关注 0票数 7

我有一个Django应用程序,它使用一些秘密密钥(例如,用于OAuth2 / JWT身份验证)。我想知道哪里是存放这些钥匙的合适地方。

以下是我到目前为止发现的方法:

  1. 硬编码:不是一个选项,我不希望我的秘密在源代码管理上。
  2. 硬编码+混淆:与#1相同-攻击者只需运行我的代码即可获得秘密。
  3. 存储在环境变量:我的app.yaml也是源代码控制的。
  4. 存储在DB中:不确定。DB在可用性和安全性方面不够可靠。
  5. 存储在一个非源代码控制的文件:到目前为止我最喜欢的方法。问题是我需要对文件进行一些备份,而手动备份听起来不太正确。

我是不是遗漏了什么?是否存在存储Django应用程序或App应用程序的密钥的最佳实践?

EN

回答 2

Stack Overflow用户

发布于 2014-11-30 14:21:18

您很难对访问您的服务器的攻击者隐藏秘密密钥,因为服务器需要知道密钥。但是,您可以使低权限的攻击者很难。

混淆通常不被认为是一种好做法。

你的选择5似乎是合理的。将密钥存储在一个非源代码控制的文件中,可以将密钥保存在一个单独和定义良好的位置。可以对该文件设置适当的权限,以便攻击者需要高权限才能打开该文件。还要确保编辑项目的其余部分需要高权限,否则攻击者可以修改项目的随机文件以访问密钥。

我自己在我的项目中使用你的选项5。

票数 0
EN

Stack Overflow用户

发布于 2016-06-15 01:06:08

我看到的一个解决方案是使用gpg将秘密配置的加密副本存储在存储库中。根据团队的结构,您可以对称地加密它,并共享密码来解密它,或者使用核心成员/维护人员的公钥加密它。

这样,您的秘密就会像您的代码一样被备份,而不会使它们成为可见的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27214104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档