我想把一些代码推送到我的GitHub仓库。这些代码是不同的语言,如Javascript,Java,Python等。其中一些代码包含一些我不想发布的私有API密钥。有没有办法自动隐藏密钥?我应该手动从代码中删除它吗?有很多项目我想推到GitHub上。因此,手动删除不是一个好的选择。
Javascript
Java
Python
API
guicsvcw1#
您应该考虑使用.env文件并从环境变量中读取键。如何做到这一点取决于您使用的语言和工具(node.js、php等)。您可以通过将.env添加到.gitignore来从提交中排除.env文件。您还可以上传一个示例配置.env.example,其中包含虚拟数据或空白,以显示您的应用程序所需的模式。
.env
.gitignore
.env.example
d8tt03nd2#
任何时候,您的文件中包含敏感数据,例如
config.yml
你不能把它们提交到你的仓库。我给你举个例子。假设您有一个yaml文件,其中包含一些用户名和密码:
# app/config/credentials.yml credentials: username: foo password: bar
如果你想隐藏foo和bar的值,从你的仓库中删除这个文件,但是添加一个distribution文件,它的目的是维护用户名和密码字段,但是没有任何真实的的值:
foo
bar
distribution
# app/config/credentials.yml.dist credentials: username: ~ password: ~
在安装过程中,您可以通过将app/config/credentials.yml.dist复制到app/config/credentials.yml来获取此文件。另外,请记住将app/config/credentials.yml添加到.gitignore文件中。API keys也是一样:
app/config/credentials.yml.dist
app/config/credentials.yml
# app/config/config.yml config: credentials: username: foo password: bar api_stuffs: api_foo: fooooo api_secret: baaaaar api_token: tooooken
这对于配置文件非常有效,并且是一种很好的模式,可以在每次需要共享配置结构而不是敏感数据时节省您的时间。初始化文件、配置等。
izj3ouym3#
无论如何,在代码中使用API密钥可能是一个坏主意。这意味着任何想要使用您的代码的人都必须编辑代码并重新构建它。对于这种情况,教科书上的解决方案是将凭证移动到某个配置文件中,并在README.md文件中添加有关配置文件的结构和位置的清晰文档。您还可以在gitignore文件中添加一个条目,以防止您自己(和其他任何人)错误地将您的私人信息推送到GitHub。
README.md
gitignore
thigvfpy4#
您可以在服务器中添加enviornment variables来隐藏API密钥。所有流行的编程语言都有默认的方法来访问环境变量。
e0uiprwp5#
以上所有答案都很好,但我认为作为初学者,文档很难。因此,我总结一切与图片在这个解决方案第0步:在终端中写入npm i dotenv -- save,安装env文件的包。第一步:创建.env文件。请注意,不要给予文件命名,只需创建一个.env文件本身。Click on the image if doubt in step 1第二步::现在在文件中添加API密钥,如(API_KEY = jkdjkjkl34334342)。Click on the image if doubt in step 2第三步:在你正在使用的js文件中,只需添加以下代码行:
npm i dotenv -- save
require('dotenv').config(); const apikey= process.env.API_KEY;
Click on the image if doubt in step 3
5条答案
按热度按时间guicsvcw1#
您应该考虑使用
.env
文件并从环境变量中读取键。如何做到这一点取决于您使用的语言和工具(node.js、php等)。您可以通过将
.env
添加到.gitignore
来从提交中排除.env
文件。您还可以上传一个示例配置.env.example
,其中包含虚拟数据或空白,以显示您的应用程序所需的模式。d8tt03nd2#
任何时候,您的文件中包含敏感数据,例如
你不能把它们提交到你的仓库。我给你举个例子。
假设您有一个yaml文件,其中包含一些用户名和密码:
如果你想隐藏
foo
和bar
的值,从你的仓库中删除这个文件,但是添加一个distribution
文件,它的目的是维护用户名和密码字段,但是没有任何真实的的值:在安装过程中,您可以通过将
app/config/credentials.yml.dist
复制到app/config/credentials.yml
来获取此文件。另外,请记住将
app/config/credentials.yml
添加到.gitignore
文件中。API keys也是一样:
这对于配置文件非常有效,并且是一种很好的模式,可以在每次需要共享配置结构而不是敏感数据时节省您的时间。初始化文件、配置等。
izj3ouym3#
无论如何,在代码中使用API密钥可能是一个坏主意。这意味着任何想要使用您的代码的人都必须编辑代码并重新构建它。
对于这种情况,教科书上的解决方案是将凭证移动到某个配置文件中,并在
README.md
文件中添加有关配置文件的结构和位置的清晰文档。您还可以在gitignore
文件中添加一个条目,以防止您自己(和其他任何人)错误地将您的私人信息推送到GitHub。thigvfpy4#
您可以在服务器中添加enviornment variables来隐藏API密钥。所有流行的编程语言都有默认的方法来访问环境变量。
e0uiprwp5#
以上所有答案都很好,但我认为作为初学者,文档很难。因此,我总结一切与图片在这个解决方案
第0步:在终端中写入
npm i dotenv -- save
,安装env文件的包。第一步:创建
.env
文件。请注意,不要给予文件命名,只需创建一个.env文件本身。Click on the image if doubt in step 1第二步::现在在文件中添加API密钥,如(API_KEY = jkdjkjkl34334342)。Click on the image if doubt in step 2
第三步:在你正在使用的js文件中,只需添加以下代码行:
Click on the image if doubt in step 3