Google Apps Script脚本执行授权后开发者是否拥有对应权限咨询
Google Apps Script 权限与安全性相关答复
脚本执行安全性判定
仅从申请的权限列表无法直接判定脚本是否存在恶意,核心判断依据是实际代码逻辑:
- Google Apps Script的OAuth权限机制本身颗粒度较粗,只要代码中调用了Slides编辑类方法、数据库读写类方法,平台就会默认弹出对应全量权限申请,不会单独提供“仅操作指定文件/指定库”的细粒度授权选项。如果你的「Cashflow Script」本身业务逻辑就需要生成现金流相关的Slides报表、读写业务库数据,这类权限申请属于平台规则下的正常现象,不代表脚本本身有问题。
- 确认安全性唯一可靠的方式是做全量代码审计:打开脚本编辑器逐行核查逻辑,重点排查三类风险代码:一是调用
UrlFetchApp向外部未知地址传输数据的逻辑,二是自动给外部账号加文件/项目编辑权限的逻辑,三是窃取账号授权令牌的逻辑。只要代码里没有上述恶意逻辑,哪怕申请的权限范围大,也只会在你的账号环境内执行业务操作,不会产生越权风险。
授权后开发者是否能获取对应权限
分两种情况:
- 如果你是把开发者交付的脚本复制到自己账号下的独立GAS项目运行,没有给开发者开放你名下项目的协作者权限,开发者完全拿不到你授权的任何权限——GAS的授权是和执行用户、用户名下的项目绑定的,原脚本作者没有通道访问你账号下的授权数据。
- 存在三类高风险场景会让开发者间接拿到权限:
- 你把开发者加为自己名下GAS项目的协作者,对方可以随时修改代码加入数据窃取逻辑,你下次执行脚本时就会触发
- 脚本本身内置了令牌窃取逻辑,执行时会把你账号的有效OAuth令牌通过接口发送到外部服务器,对方拿到令牌后就能在有效期内使用你授予的所有权限
- 脚本创建了跨账号共享的可安装触发器,外部账号可以通过触发器间接调用你授予的权限操作数据
实操核查建议
- 打开脚本编辑器后用全局搜索(快捷键
Ctrl+Shift+F)检索关键词:UrlFetchApp、getOAuthToken、addEditor、setSharing,逐一确认这些方法的调用场景是否和你的业务需求匹配 - 如果没有代码核查能力,不要随意给外部人员开放项目协作者权限,可找无利益关联的第三方技术人员做代码审计后再上线运行
- 对暂时用不到的权限,可以在Google Cloud控制台对应项目的OAuth同意屏幕中手动移除,运行出现权限报错时再按需开启,避免授予无必要的全量权限
内容的提问来源于stack exchange,提问作者Albert
相关产品推荐
相关产品推荐

