提问者:小点点

Firebase服务号私钥暴露给admin


我在我的node. js后端配置了一个名为admin的变量,我调用admin.fi恢复()。当我做控制台日志(admin.fi恢复())时,我看到我的服务号的私钥已经显示在后端终端中。这是我看到的控制台日志:

Firestore {
  _settings: {
    credentials: {
      private_key: 'my actual private key',
      client_email: 'xxxxx'
    },
    projectId: 'pxxxx3',
    firebaseVersion: '8.13.0',
    libName: 'gccl',
    libVersion: '3.8.6 fire/8.13.0'
  },
  _settingsFrozen: false,
  _serializer: Serializer { createReference: [Function], allowUndefined: false },
  _projectId: 'xxxxx',
  registeredListenersCount: 0,
  _lastSuccessfulRequest: 0,
  _backoffSettings: { initialDelayMs: 100, maxDelayMs: 60000, backoffFactor: 1.3 },
  _preferTransactions: false,
  _clientPool: ClientPool {
    concurrentOperationLimit: 100,
    maxIdleClients: 1,
    clientFactory: [Function],
    clientDestructor: [Function],
    activeClients: Map {},
    terminated: false,
    terminateDeferred: Deferred {
      resolve: [Function],
      reject: [Function],
      promise: [Promise]
    }
  }
}

我有点担心它可能存在安全风险。虽然它在我后端的代码中。但是我应该担心吗?


共2个答案

匿名用户

如果数据只在您的后端可用,那么它是“安全的”,因为只有有权访问您的后端的人才能看到它。问题不在于数据在日志中,问题在于您允许谁查看该日志。

如果数据从未逃逸到客户端应用程序,那么您不必担心Internet上的随机人员会看到您的凭据。

匿名用户

IMHO,如果外部实体可以登录到您的系统,您就会遇到不同类型的问题。

如果你考虑一下,大多数环境变量必须在运行时放置在某个地方。它们不应该硬编码在你的代码中,但是在运行时,你需要一种机制来确保值被复制到你的系统中。之后,一切都是关于授权的,只有拥有正确权限的用户才应该被允许进入你的系统。