在 Google 应用程序脚本代码中放入秘密是否安全?

Is it safe to put in secrets inside Google App Script code?

我正在创建一个 Google Workspace 插件,需要使用 OAuth 发出一些请求。他们提供了一份指南 here 来解释如何操作。在示例代码中,建议将 OAuth 客户端密码内联:

function getOAuthService() {
  return OAuth2.createService('SERVICE_NAME')
      .setAuthorizationBaseUrl('SERVICE_AUTH_URL')
      .setTokenUrl('SERVICE_AUTH_TOKEN_URL')
      .setClientId('CLIENT_ID')
      .setClientSecret('CLIENT_SECRET')
      .setScope('SERVICE_SCOPE_REQUESTS')
      .setCallbackFunction('authCallback')
      .setCache(CacheService.getUserCache())
      .setPropertyStore(PropertiesService.getUserProperties());
}

我这样做安全吗?

我不知道 Google App Script 是如何构建的,所以我没有关于代码在哪里以及如何运行的详细信息运行。

很可能它是安全的,因为只有脚本所有者和工作区管理员才能访问该脚本,前提是它用于 Google 工作区(这可能是也可能不是问题)。

好吧,您可以通过使用容器、使用 Container-bound 脚本添加一些 security/safety,该脚本利用 Google 电子表格、Google 文档或任何其他允许用户交互的。或者一个独立的脚本,但也使用其他方式连接到 UI 进行交互。请参阅此 link 以获得更详细的解释:

否则,我认为您可以做的唯一方法是将密钥和秘密存储在用户属性中。方法如下:

您还可以参考下面的 link,了解有关如何管理或添加一些安全性的更多一般信息:https://softwareengineering.stackexchange.com/questions/205606/strategy-for-keeping-secret-info-such-as-api-keys-out-of-source-control