简而言之:我是否应该在我们的源代码中共享 oauth2-credentials 以及从专用的单一用途 google 帐户对 google 驱动器的完全写入访问权限?
所以,我编写了一个 python 脚本,它可以将一些数据保存到预先存在的 google-sheets 文件中,或者在给定的 google drive 文件夹中创建一个新的 google-sheets 文件(这两个文件都是可公开编辑的,以便在团队之间共享) .
为此,我遵循了google和其他来源概述的步骤和教程,之后我获得了 oauth2-credentials,以便我的脚本通过 google drive 和 google sheet API 进行身份验证。
这些凭据来自我为此脚本创建的单一用途的 google 帐户。
现在我想与其他团队成员分享这个脚本,但不确定如何处理凭证;任何一个:
一种。)
我将合并建议的 google 工作流程,让脚本的用户对他/她自己进行身份验证,即用户启动脚本,然后被定向到 google-authentication weblogin,对脚本进行身份验证,然后脚本将保存并使用那些用户用于将数据写入公共 google-sheets 文件(不一定是用户拥有的私有文件)的凭据。
这有以下缺点:
- 用户将使用凭据信任我的脚本,这可以使其能够读取/写入用户驱动器帐户的所有数据。虽然我当然没有任何伤害的意思,但要求和负责似乎仍然太多了
- 它打破了我脚本的预期直接工作流程。
- 从技术上讲根本没有必要,因为脚本只能写入公共工作表文件/驱动器文件夹;那么为什么它需要对所有用户的驱动器文件进行写访问呢?
乙)
将我们的单一用途帐户的凭据硬编码到脚本中;唯一的缺点是当脚本的源代码将被共享时,任何人都可以获得这些凭据。但是这些凭据只会使攻击者能够将数据写入/读取帐户的 google 驱动器,但由于 oauth2 凭据范围的限制(我使用了“ https:// www.googleapis.com/auth/drive ”范围)。此外,如前所述,我们只会使用脚本将数据读/写到真实 google 帐户拥有的公共工作表文件中,因此我们永远不会使用单一用途帐户的驱动器,因此攻击者无法破坏我们的数据。
因此,我宁愿选择选项 B,但我无法摆脱硬编码公开可读凭证带来的焦虑......
你有什么建议?