Oauth 在实时模型中保守秘密安全吗?

Oauth 在实时模型中保守秘密安全吗?,oauth,google-drive-realtime-api,Oauth,Google Drive Realtime Api,当应用程序将驱动器实时API与存储在驱动器中的用户文件结合使用时,它可以访问与该文件关联的实时协作模型。官方参考资料[1]和StackOverflow[2]之前的回答中都记录了当两个不同的应用程序[3]使用具有相同驱动器文件的实时API时,它们将访问不同的协作模型 让我们假设我有一个服务器端应用程序,其中有一个客户端\u secret和用户的OAuth刷新\u令牌存储在只有我才能访问的服务器上,并且用户的访问\u令牌仅在直接调用(通过HTTPS)各种Google API时离开该服务器。考虑我的应

当应用程序将驱动器实时API与存储在驱动器中的用户文件结合使用时,它可以访问与该文件关联的实时协作模型。官方参考资料[1]和StackOverflow[2]之前的回答中都记录了当两个不同的应用程序[3]使用具有相同驱动器文件的实时API时,它们将访问不同的协作模型

让我们假设我有一个服务器端应用程序,其中有一个
客户端\u secret
和用户的OAuth
刷新\u令牌
存储在只有我才能访问的服务器上,并且用户的
访问\u令牌
仅在直接调用(通过HTTPS)各种Google API时离开该服务器。考虑我的应用程序使用了<代码> > RealTime.Geult<代码> >代码> RealTime.Update >代码>方法,以在用户驱动文件的协作模型中保留一些敏感数据,例如加密密钥或第三方服务的长寿命OAuth<代码> PrimHythGooTo/<代码>。 即使该应用程序在同一文件上也使用了实时API,该敏感数据也不会泄露给其他应用程序吗?

我认为任何其他应用程序都无法模拟我的应用程序,因为它们无法访问我的
客户端\u secret
,也没有机会拦截与我的应用程序关联的
刷新\u令牌
或用户的
访问\u令牌

额外问题:用户能否绕过我的应用程序并访问此敏感数据?

我看不到用户模拟我的应用程序的方法。用户可以使用我的应用程序的公共
client\u id
并通过正常的OAuth流授予自己权限,但在不知道
客户机密钥的情况下,无法将生成的
code
交换为有效的
access\u令牌


  • 模型由应用程序隔离。如果用户使用两个不同的协作应用程序打开同一文件,则会创建单独的文档
  • “当您在实时游乐场中创建文档时,该文档归实时游乐场应用程序所有。当您尝试在
    try it
    功能中获取
    响应时,它使用特定于
    try it
    的应用程序,而该应用程序无法查看您创建的实时模型。”
  • 也就是说,当应用程序使用不同的
    client\u id
    值来获取用户的OAuth凭据时

  • 正如您所描述的,不同应用程序的实时模型是隔离的,但是您应该假设模型中的任何内容在理论上都可以被ACL上的任何用户读取

    如果用户已授权您的应用程序,理论上他们可以获取用于发出请求的oauth令牌,因为它需要与请求一起从他们的计算机发送


    此外,如果您加载文档,则无论您显示文档的哪个部分,它都将在浏览器中完全可用。

    是的,我知道当使用客户端实时API在浏览器中加载模型时,用户可以使用我的应用程序的OAuth令牌。但是如果我只从服务器使用get/update方法(用于导入和导出实时模型),而从不向最终用户公开OAuth令牌。。。那么在这种情况下,用户永远无法访问实时模型,对吗?