Vin*_*sil 6 ruby-on-rails ruby-on-rails-5.2
我刚刚创建了一个新的 Rails 项目,它附带了这个credentials.yml.enc文件。
公开提交安全吗?
我终于明白了。首先阅读此https://blog.saeloun.com/2019/10/10/rails-6-adds-support-for-multi-environment-credentials.html。
对于test和developmentenv,你可以简单地删除master.key,你会发现rails s效果很好。您可以运行rails console,然后运行Rails.application.credentials.config以查看该值。
但如果你在那里出错master.key并运行rails s,你会得到一个错误。
但如果你删除了master.key,你会发现rails s -e production不起作用。
如果您有正确的值master.key,则可以运行EDITOR=vim rails credentials:edit对其进行编辑。
如果您没有正确的值master.key,当您运行时,它会为您EDITOR=vim rails credentials:edit生成一个新值,但不幸的是,这是一个错误的值。这是合理的,因为它使得无法解密,除非您已经获得了正确的.master.keymaster.keycredentials.yml.encmaster.key
因此,您可以删除credentials.yml.encandmaster.key并运行EDITOR=vim rails credentials:edit以生成新的对。但在执行此操作之前,您应该删除master.key并运行rails console,然后运行Rails.application.credentials.config以了解运行时需要设置哪些值EDITOR=vim rails credentials:edit。
env中的所有 Rails 实例都production应该具有相同的credentials.yml.enc和master.key。
所以你应该保留credentials.yml.enc你的源代码。
这里David Heinemeier Hansson说了什么:
这些秘密不应在测试或开发中承受任何形式的攻击。
据我所知,你不应该在这里保留该死的秘密凭证,然后公开发布就好了。
只有在生产环境(以及衍生环境,如公开的测试版)中,秘密才真正需要保密。因此,我们可以简单地将这个秘密插入到新的平面凭证.yml.enc 文件中。
最后他提到:
注意:我们应该只保留 Rails.secrets 和朋友。Rails.credentials 设置将是一种新的并发方法。所有新应用程序都会使用它,但我们不需要破坏现有应用程序。
希望它会有所帮助。了解更多,请关注此。
| 归档时间: |
|
| 查看次数: |
3980 次 |
| 最近记录: |