在创建.env和.ignore文件之前推送到GitHub的节点密钥是否仍然可以访问?

时间:2018-04-14 09:04:38

标签: node.js git gitignore

在我创建.env.gitignore文件之前,我的00000文件中有一个键app.js基本上是裸文本(我忘记了它的俚语):

var admin = require("firebase-admin");
admin.initializeApp({
  credential: admin.credential.cert({
    privateKey: 00000 // this key is naked
  })
});

我已将app.js文件提交并推送到GitHub git push origin master首次提交

后来我创建了一个.env文件来创建一个常量来隐藏我的裸键:

PRIVATE_KEY=00000

在我的app.js文件中,我用.env文件中的常量替换了裸键:

const dotenv = require('dotenv');
dotenv.load();

var admin = require("firebase-admin");
admin.initializeApp({
  credential: admin.credential.cert({
    privateKey: process.env.PRIVATE_KEY // the key is now safely hidden once added to the .gitignore file
  })
});

我创建了一个.gitignore文件,将.env文件添加到其中,提交并将所有内容推送到Github(第二次提交

我现在的问题是我的密钥是隐藏的,没有人可以访问它,但是当我按下所有内容并且密钥是裸的时,第一次提交是什么呢?是以某种方式可访问/不安全?

1 个答案:

答案 0 :(得分:0)

@fardjad在评论中给我发了一个链接:github sensitive data

它说:

  

警告:一旦你将提交推送到GitHub,你应该考虑它所包含的任何数据被泄露。如果您提交了密码,请更改密码!如果您提交了密钥,请生成一个新密钥。   本文将告诉您如何使用GitHub存储库中任何分支或标记无法访问敏感数据的提交。但是,重要的是要注意,这些提交仍然可以在存储库的任何克隆或分支中访问,直接通过GitHub上缓存视图中的SHA-1哈希,以及引用它们的任何拉取请求。您无法对存储库的现有克隆或分支执行任何操作,但您可以通过联系GitHub支持永久删除所有存储库的缓存视图并在GitHub上提取请求。

答案是肯定的,第一次提交裸文是可访问/不安全的。