当应用程序将Drive Realtime API与存储在Drive中的用户文件结合使用时,它可以访问与该文件关联的实时协作模型。它已在官方参考资料[1]和之前的StackOverflow [2]答案中记录,当两个不同的应用程序[3]使用具有相同Drive文件的Realtime API时,它们将访问不同协作模型。
我们假设我的服务器端应用程序client_secret
,用户的OAuth refresh_token
存储在我只能访问的服务器上,并且用户access_token
仅在向各种Google API进行直接调用(通过HTTPS)时离开该服务器。考虑我的应用程序使用Drive API的realtime.get
和realtime.update
方法将一些敏感数据保存在用户的驱动器文件的协作模型中的情况,例如加密密钥或用于第三方服务的长期OAuth refresh_token
。
即使该应用程序还在同一文件上使用Realtime API,这些敏感数据是否可以避免泄露给其他应用程序?
我认为任何其他应用都不能冒充我的申请,因为他们无法访问我的client_secret
,也无法拦截{{1}或者与我的应用相关联的用户refresh_token
。
加分问题:用户是否可以绕过我的应用程序并获取对此敏感数据的访问权限?
我无法看到用户模仿我的应用程序的方法。用户可以使用我的应用程序的公开access_token
并通过正常的OAuth流授予他自己的权限,但无法在不知道的情况下将结果client_id
换成有效的code
access_token
。
client_secret
get
功能中的响应时,它会使用特定于try-it
的应用,该应用无法看到您创建的实时模型。" Official answer to question "How to work with Realtime get
and update
api requests?" try-it
值来获取用户的OAuth凭据时。答案 0 :(得分:0)
不同应用程序的实时模型在您描述时是隔离的,但您应该假设模型中的任何内容在理论上都可由ACL上的任何用户读取。
如果用户已经授权您的应用程序,他们理论上可以获取用于发出请求的oauth令牌,因为它需要从他们的计算机连同请求一起发送。
此外,如果您在浏览器中完整地加载了文档,无论您显示哪些部分。