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

时间:2019-07-31 11:23:57

标签: gcloud speech-to-text

快速概述: 该应用程序使用Google的“语音转文字”功能将麦克风输入实时转换为文字。因此,API密钥必须在客户端计算机上为(?)。

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

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

2 个答案:

答案 0 :(得分:1)

我在Google Cloud Platform文档中找到了有关"Securing an API key"的一些文档,这些文档可能对您有帮助。

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

希望这对您有帮助!

答案 1 :(得分:1)

我建议您仅分发API密钥作为最后的选择; API密钥实际上是整个项目范围的承载令牌,在使用方式上受到限制。

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

使用服务帐户,您可以:

  • 为每个客户使用> = 1服务帐户,使您能够|以一个客户或一个客户业务部门的粒度启用用户
  • 使用|假定服务帐户密钥轮换,使您能够迅速撤消错配的共享密钥

请参阅:

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