【发布时间】:2019-08-14 10:25:32
【问题描述】:
我很确定我的理解是正确的,但由于我找不到任何明确强调这一点的 Google 文档,所以我想在这里询问。
每https://developers.google.com/apps-script/guides/triggers/installable:
可安装触发器始终在创建它们的人的帐户下运行。
而且我们知道,当您创建触发器时,它会要求对脚本使用的所有范围进行授权。
然后,这意味着对脚本具有编辑权限的任何人都可以利用用于创建触发器的用户的 Google 身份来访问触发器被授权的范围。
例如:
- 用户 1 创建了一个使用 GmailApp 发送电子邮件的 Google Apps 脚本
(即
GmailApp.sendEmail("one@example.com", "test subject", "email body");) - 用户 1 创建一个触发器以每小时运行一次所述脚本,并使用适当的 GmailApp 范围对其进行授权
- 用户 1 向用户 2 授予对所述脚本的编辑访问权限
现在,用户 2 可以进入所述脚本并更改代码并访问用户 1 的 Gmail 帐户。例如,用户 2 可以将代码更改为:
var emails = GmailApp.search("search string to find sensitive emails")
// use GmailApp.sendEmail to forward those details to someone else like User 2
他们所要做的就是修改代码并保存;他们不需要重新创建触发器,因为它已经存在。下次触发器运行时,它将运行更新/更新的代码。
我能够通过在我的一个帐户上创建一个测试脚本并授予另一个帐户编辑权限来确认此行为。
所以我的问题是,官方/推荐的减轻这种风险的方法是什么?显而易见的答案是不给其他任何人编辑权限,但如果这不是一个选项——如果出于支持目的需要多个人能够访问脚本,那该怎么办?
【问题讨论】:
标签: security google-apps-script google-authentication privacy google-apps-script-editor