简而言之,问题如下:

简而言之,问题如下:

我正在写一个Gmail 的 bash 脚本它将使用 OAuth2 授权自己,并使用收到的令牌进行 API 调用。有效。
但现在我陷入了思考如何安全地存储客户端 ID 和客户端密钥在我的脚本中,该脚本对所有人开放在 GitHub 上。自从泄露了自己的客户端密钥和客户端 ID这不是一个好主意,因为其他人可以轻松地用自己的应用程序来伪装他们的应用程序。我该如何处理这个问题?

简而言之,问题如下:

  • 我的程序迫切需要客户ID客户秘密上班。
  • 我的程序是开源的,因此我不能将它们直接包含在代码中。
  • 我希望所有下载我的程序的用户都能够使用我自己的一套客户ID客户秘密,而他们实际上不知道什么客户ID客户秘密是!

基本上,我需要想出一种方法,通过或绕过 GitHub 将一些秘密数据从我的终端传输到用户的 PC,这样只有程序(我的脚本)必须能够读取它,不是用户

我知道这似乎不可能,但我发布了这个问题来验证是否可能。如果可以的话,我想知道怎么做。

答案1

不;您将需要一个云/服务器组件/代理来将秘密添加到每个请求(无论编程语言如何)。

当然,人们确实尝试隐藏本地副本,但这对他们来说永远不会成功。

代理示例:

client> curl my.server.com/list/1
server> curl api.mail.google.com/list/1?key=123

因此您的代理只需传递所有参数/标头/数据并将您的 ID 和 Secret 添加到请求中。这可能会导致服务器上占用大量带宽,因此您应该考虑添加一个选项来使用自己的 Secret,而无需为重度用户提供代理。

相关内容