Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 在用于部署live的公共回购中隐藏凭据_Git_Github_Heroku_Netlify - Fatal编程技术网

Git 在用于部署live的公共回购中隐藏凭据

Git 在用于部署live的公共回购中隐藏凭据,git,github,heroku,netlify,Git,Github,Heroku,Netlify,在GitHub等公共repo中隐藏凭据(如API密钥或数据库凭据)的最佳实践是什么?我的解决方案是拥有一个存储凭据的配置文件,然后添加一个gitignore文件,以便在推送过程中不包含该配置文件 需要注意的是,每次推送都会使用此回购进行部署,例如Netlify或Heroku。因此,通过回购推动,Netlify/Heroku网站已上线。在这种情况下,如果存在API调用或数据库请求,则凭据需要位于公共repo中,因为这是“生产文件夹” 我听说过Travis CI,它可以在GitHub推送后构建,但我

在GitHub等公共repo中隐藏凭据(如API密钥或数据库凭据)的最佳实践是什么?我的解决方案是拥有一个存储凭据的配置文件,然后添加一个gitignore文件,以便在推送过程中不包含该配置文件

需要注意的是,每次推送都会使用此回购进行部署,例如Netlify或Heroku。因此,通过回购推动,Netlify/Heroku网站已上线。在这种情况下,如果存在API调用或数据库请求,则凭据需要位于公共repo中,因为这是“生产文件夹”


我听说过Travis CI,它可以在GitHub推送后构建,但我没有对它进行太多研究。从公共存储库部署时,其他项目如何使用其凭据?

通常,人们向代码传递机密的方式是通过环境,这被认为是最佳做法。原因如下:

  • 环境中的秘密永远不会写入磁盘,因此被发现或泄露的意外风险要小得多
  • 环境中的秘密仅对具有相同用户ID的其他进程可见,这在部署到硬件时非常有用
如果您的凭据足够小,则可以使用所使用的任何提供程序的机密存储或环境存储。所有主要的CI提供商都有这个功能,我希望大多数主要的托管站点也有这个功能;我知道希罗库知道。SSH密钥等必须是文件的东西可以从环境中写入磁盘,理想情况下是写入一个临时目录,然后进行清理

如果您要部署到自己的基础结构中,通常会有一些用于此目的的加密秘密存储。金库是一个普通的金库

如果您需要用于开发的凭据,您可以对代码进行结构化,以便在未设置变量的情况下,有一个安全的默认值(如硬编码短语
secret
)供开发使用,或者您可以在开发和测试代码中提供一组回退。有些项目还使用
.env
文件,尽管这需要一些人不想安装的附加代码


如果您拥有无法存储在秘密存储中的巨额凭证,您可以。

使用Heroku,您可以使用。谢谢@bk2204!环境是有道理的,我听说过一些秘密,只是还没有研究过。我来看看这个