潜在的安全漏洞——打开谷歌脚本?
Posted
技术标签:
【中文标题】潜在的安全漏洞——打开谷歌脚本?【英文标题】:Potential security breach- open google script? 【发布时间】:2020-04-01 21:04:42 【问题描述】:我想允许第三方应用程序 (Zapier) 执行一个谷歌脚本,该脚本可以访问我组织内的 Admin Directory API。为此,我需要允许每个有链接的人执行此脚本,该脚本采用参数在组织内创建新用户。此外,如果有人能够编辑脚本,他们可能会造成很多伤害。
有人知道如何防止这种情况发生或确保整个过程安全吗? 实际潜在威胁是什么?
干杯,
【问题讨论】:
您需要使用 Zapier 集成哪些第三方服务?如果可能,最好直接与该服务集成。将您的应用程序脚本公开为公共 Web 应用程序充满了问题。任何拥有该 Web 应用程序 url 的人都可以向该端点发送垃圾请求,并耗尽您的服务配额,使您的系统陷入困境。 这不是编程问题。但是,您实际上是允许匿名用户以只读方式执行脚本。第 3 方无法编辑已发布的脚本,因为您需要将所有编辑重新发布为新修订版,并带有新链接。该过程与您共享链接的人数以及您在脚本中构建的错误处理一样安全,因此只接受格式正确的请求。有人猜测 URL 并传递正确参数的可能性非常低。 @JamesD 传递参数不能提供足够的保护来抵御垃圾邮件攻击。只要通过 GET 或 POST 请求访问 Web 应用程序 url,它就会计入 Trigger Total Runtime 配额(因为doGet(e)
和 doPost(e)
被视为触发器)并且还针对 同时执行 配额.唯一真正的保护是限制对受信任方的访问。
【参考方案1】:
正如@Dimu Designs 和@James D 已经说过的,这可能不是最好的主意。
如果可能,最好直接与该服务集成。将您的应用程序脚本公开为公共 Web 应用程序充满了问题。任何拥有 Web 应用程序 url 的人都可以向该端点发送垃圾邮件请求,并耗尽您的服务配额,使您的系统陷入困境。
这不是一个编程问题。但是,您实际上是允许匿名用户以只读方式执行脚本。
还考虑到配额,您也会遇到@Dimu Designs 已经说过的问题。
传递参数无法为垃圾邮件攻击提供足够的保护。只要通过 GET 或 POST 请求访问 Web 应用程序 url,它就会计入 Trigger Total Runtime 配额(因为 doGet(e) 和 doPost(e) 被视为触发器)以及同时执行配额。唯一真正的保护是限制对受信任方的访问。
最终,使用 Apps 脚本执行此操作可能不是可行的方法。通过 Intranet 在内部执行此操作将是一个更好的解决方案。但是,如果使用 Apps 脚本是您唯一的选择,请注意该过程中涉及的风险。
【讨论】:
感谢您的回答。现在我实现了一个必须提供的令牌来执行这个脚本的目的。尽管如此, doGet(e) 仍然可以被请求击中。因此,@Dimu Designs,我试图将第三方应用程序列入白名单,但是当脚本不公开匿名时,它导致 401 ......谷歌只给了我 4 种可能性。只有我可以执行它,只有组织成员,每个用 google 登录的人,甚至每个人都匿名。在最好的情况下,我可以将 Zapier 添加到我的谷歌组织......有人有想法吗?以上是关于潜在的安全漏洞——打开谷歌脚本?的主要内容,如果未能解决你的问题,请参考以下文章