如果 Google Speech-To-Text API 密钥在客户端计算机上,如何保护它?

How to protect Google Speech-To-Text API key if it's on client's computer?

快速概览: 该应用程序使用 Google 的 Speech-To-Text 将麦克风输入实时转换为文本。因此,API 密钥必须是 (?) 在客户端的计算机上。

它是一个嵌入在 Electron 中的 Web 应用程序,因此它可以访问本地文件系统并可以启动与 Google 的 API 通信的服务器。然后它通过 websocket 将接收到的数据发送到 webapplication。

我刚刚意识到,无论我用什么语言编写服务器,一个非常狡猾的用户都可能能够从代码中检索到 API 密钥。我如何保护该密钥?

我在 Google 云平台文档中找到了一些关于 "Securing an API key" 的文档,可能对您有所帮助。

根据此文档,建议不要直接在您的代码或应用程序源代码树中的文件中使用 API 键。相反,您可以将它们存储在环境变量或应用程序源代码树之外的文件中。

希望对您有所帮助!

我鼓励您仅在万不得已时分发 API 密钥; API 密钥是有效的项目范围的不记名令牌,对如何使用它们具有有限的限制。

您应该可以使用服务帐户。

使用服务帐户您可以:

  • 为每个客户使用 >=1 个服务帐户,使您能够以一个客户或一个客户业务部门的粒度启用|禁用用户
  • 使用|假设服务帐户密钥轮换使您能够及时撤销丢失的|共享密钥

参见:

您可能希望考虑托管而不是分发您的服务器。通过托管服务器,您可以加强对它的控制,实现更快速(连续)的更新、错误修复等,限制不良行为者对您的代码进行逆向工程的能力,并限制不良行为者获取您的服务帐户密钥的能力。