在哪里保留Web应用程序的私钥和凭据?

时间:2016-12-29 10:02:53

标签: api security go web-applications key

我有一个webapp,它使用密钥和凭据从外部服务(如支付网关,数据库提供商等)调用API端点。

我有以下选项来保留这些值:

  1. 在应用启动之前设置环境变量,并在应用运行时加载它们。如果没有所需的值,例如没有设置,退出应用程序。
  2. 在应用开始时,请用户(我自己或管理员)输入凭据。如果必填字段为空,请退出,否则继续加载应用程序。
  3. 将它们作为普通值保存在配置文件中。这对我来说是最不可取的方式。
  4. 如果我想让密钥尽可能安全可靠,我应该使用以下哪些内容?

3 个答案:

答案 0 :(得分:2)

我会选择user environment variables,因为googleamazon都会推荐这样做。

如果您要以纯文本文件存储,请记住不要将它们保存在应用程序的源代码树中(如果使用某些版本控制,最终可能会将它们暴露给公众)。

另外,请记住定期重新生成密钥。

答案 1 :(得分:1)

我认为你应该如你所说,使用配置文件。也许加密它?

答案 2 :(得分:0)

如果您有许多要管理的密钥,环境变量就会变得笨拙。混合方法适用于我:加密秘密并将它们全部放入配置中(通常作为base64)。对所有这些密钥使用相同的加密密钥,并将其作为环境变量传递。

所以你只需要制作一个环境变量来保护你需要的其他秘密。