Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/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 为什么要将机密从存储库中检出?_Git_App Secret - Fatal编程技术网

Git 为什么要将机密从存储库中检出?

Git 为什么要将机密从存储库中检出?,git,app-secret,Git,App Secret,似乎大家都知道,从git存储库中检出机密文件(任何包含密码、API密钥等的文件)是一种很好的做法(指示、、还有更多) 为什么?这通过使这些“机密”(以及其他与密码/安全性/令牌相关的值)的值仅在生产环境中已知,而不是在签出存储库的任何地方,从而增强了安全性。如果可能,每个环境(例如,本地开发、开发服务器、登台/演示服务器、生产环境等)都应该有自己单独的身份验证或安全参数配置,这些参数应该在本地环境中配置,而不是存储在应用程序代码中 即使您的存储库是私有的,它仍然不安全。开发人员来来往往。人们来来

似乎大家都知道,从git存储库中检出机密文件(任何包含密码、API密钥等的文件)是一种很好的做法(指示、、还有更多)


为什么?

这通过使这些“机密”(以及其他与密码/安全性/令牌相关的值)的值仅在生产环境中已知,而不是在签出存储库的任何地方,从而增强了安全性。如果可能,每个环境(例如,本地开发、开发服务器、登台/演示服务器、生产环境等)都应该有自己单独的身份验证或安全参数配置,这些参数应该在本地环境中配置,而不是存储在应用程序代码中


即使您的存储库是私有的,它仍然不安全。开发人员来来往往。人们来来往往。项目管理来来往往。您可能有一些具有回购权限的第三方承包商。一个足够大的项目往往会有很多参与者在工作,他们中的任何人都不需要知道产品配置值(也许除了ops)。即使使用私有存储库,向任何具有repo访问权限的人公开密钥/值仍然存在安全风险

下面是“secret”一词的字典词条:“checked out of”是错误的短语。只要说“退出”。“签出”意味着它们首先在存储库中。根据定义,存储库中的任何东西都不是秘密的。我看到的很多是,人们在开发过程中需要这些密钥,然后将这些密钥的一个版本复制到他们的计算机上。如果你在dev中需要这些密钥,这是否意味着你做错了什么?@marcprins这取决于使用这些密钥的服务的重要性,需要你的经验和专业知识来做出判断。在您与开发人员协调并努力创建该服务的纯开发人员版本的同时,可以在新的MVP项目上快速移动,在那里存储一些不太关键的密钥,并最终为每个环境迁移到单独的环境配置文件。只是不要将此信息存储在应用程序中作为长期计划,也不要存储关键(金融?产品数据库信任?)服务身份验证数据。