在服务器上存储我自己的访问令牌/秘密的正确方法

Posted

技术标签:

【中文标题】在服务器上存储我自己的访问令牌/秘密的正确方法【英文标题】:Proper way to store my own access tokens/secrets on server 【发布时间】:2016-12-21 19:56:02 【问题描述】:

当您学习前端开发时,信条是永远不要将密码存储在客户端上——只存储在服务器/数据库上。所以现在我正在构建 API 并使用 Twitter 等第三方,我意识到,因为我使用的是 Github,后来又推送到 Heroku,所以我在服务器上没有地方存储我的令牌/秘密(因为 Heroku 拉来自 Github,我无法添加到 .gitignore)。

我想到了两个解决方案:

1) 存储在数据库中。对于较小的应用程序,该选项似乎微不足道,但可扩展性。 2)加密服务器上的信息并以这种方式上传。

当您拥有敏感信息并从 Github 推送到 Heroku 时,最佳做法是什么?

【问题讨论】:

重复programmers.stackexchange.com/questions/163506/… 很好,谢谢! 【参考方案1】:

这里的答案是这样的(对于任何找到这个帖子的人):使用 Heroku 环境变量。

Heroku 鼓励您将任何特定于应用程序的敏感信息存储在环境变量中。您可以通过 Heroku 命令行工具或 Heroku 仪表板设置这些变量。

如果你想在命令行中设置 Heroku 环境变量,你可以这样做:

$ heroku config:set MY_VARIABLE=my_value

这将存储环境变量。

由于您使用的是 Node.js,因此您可以通过执行以下操作在 Heroku 代码中读取这些变量的值:

console.log(process.env.MY_VARIABLE);

在Node中,你可以通过process.env作为对象访问环境变量=)

【讨论】:

以上是关于在服务器上存储我自己的访问令牌/秘密的正确方法的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android 中安全地存储访问令牌和秘密?

如何从机器人聊天中获取 Twitter OAuth 访问令牌/秘密?

安全地存储访问令牌

在 React Redux 应用程序中使用 JWT 身份验证令牌的正确方法

登录的 linux 用户是不是有秘密标识符

如何在 CI 管道中存储多个客户端的机密文件?