gpt4 book ai didi

ruby-on-rails - 你如何在 rails 中保密 secrets.yml?

转载 作者:太空狗 更新时间:2023-10-29 12:45:44 24 4
gpt4 key购买 nike

我是 Rails 的新手,但我有一些使用 PHP 和其他语言进行编程的经验。我真的很喜欢 rails,我正在为我的公司开发一个应用程序,但我仍然不完全理解 secrets.yml 文件如何与 git 和 heroku 一起工作。我知道 secret 用于身份验证,但我不明白如何在通过 git 部署到 heroku 的同时保持 secret 。

第一个问题是,我真的需要对我的开发和测试 secret 保密吗? Rails 会自动将生产开发 secret 设置为环境 secret (我仍然不完全理解),但如果人们知道我的开发和测试 secret 是什么,那又有什么关系呢?

其次,什么是更好地理解将 secrets.yml 文件与 git 结合使用的好资源? Rails 指南似乎没有很好地记录它的使用(只有大约一段专门介绍 secrets.yml),这似乎是一个非常重要的主题,可能会导致您的应用程序出现严重的安全漏洞。

最后,其他人如何保护他们的 secret ?查看 github 上的几个示例应用程序,我注意到大多数人似乎没有采取任何步骤将 secret 文件保存在 .gitignore 中。这仅仅是一个疏忽,还是因为它并不像我认为的那样严重?

我很感激能得到的任何帮助。我已经研究这个特定问题一段时间了,但还没有真正得到任何全面的解决方案。我想向我的公司展示我的项目并解释使用 git 等版本控制系统的优势,但我也希望该应用程序足够安全以相信它可以保护我公司的数据安全。

最佳答案

这是一个(希望简单)的 HEROKU 分步指南,应该在将文件 (secrets.yml) 推送到 GitHub 或其他主机之前执行。

*我不是这个主题的专家,但这对我来说效果很好,似乎是一个很好的解决方案。它结合了来自这个问题的答案的信息以及这个问题的答案 (Step by Step explanation for using Rails secrets.yml without exposing keys to public repo when deploying to Heroku) 以提供一个简单的指南:)

1) 将secrets.yml复制到另一个名为secrets_backup.yml的文件

你现在应该有两个内容与 secrets.yml 相同的文件

2) 添加secrets_backup.yml到你的 .gitignore

3) 更改secrets.yml中的文本到以下

development:
secret_key_base: <%= ENV["SECRET_KEY_BASE_DEV"] %>
test:
secret_key_base: <%= ENV["SECRET_KEY_BASE_TEST"] %>
production:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

4) cd到命令行上的 Rails 项目文件夹

5) 在终端输入 heroku config:set SECRET_KEY_BASE_TEST=<pasted key> ,其中 <pasted key>应该从 test: secret_key_base:<key> 复制粘贴这是在 secrets_backup.yml

6) 在终端输入 heroku config:set SECRET_KEY_BASE_DEV=<pasted key> ,其中 <pasted key>应该从 development: secret_key_base:<key> 复制粘贴这是在 secrets_backup.yml

7) 我的secrets.yml文件已经有 SECRET_KEY_BASE 而不是实际的 key ,所以我怀疑你的也会有。但如果没有,请设置 SECRET_KEY_BASE 变量,就像上面设置的其他两个变量一样。

8) 将你的 repo 推送到 GitHub 和 Heroku

9) 微笑,因为你是 G.O.A.T,并炫耀你可爱的网站!

关于ruby-on-rails - 你如何在 rails 中保密 secrets.yml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31689674/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com