2015-11-13 38 views
0

当应用程序将Drive Realtime API与存储在Drive中的用户文件结合使用时,它可以访问与该文件关联的实时协作模型。已经在官方参考资料[1]和StackOverflow [2]的以前回答中记录了当两个不同的应用程序[3]使用具有相同Drive文件的Realtime API时,他们将访问不同的协作楷模。将秘密保存在实时模型中是否安全?

让我们假设我有一个client_secret服务器端应用程序和用户的OAuth refresh_token存储,只有我可以访问的服务器上,而用户的access_token进行直接调用(通过HTTPS)时只留下该服务器各种Google API。假设在我的应用程序使用的驱动API的realtime.getrealtime.update方法来保留一些敏感数据在用户的硬盘文件,的合作模式,如加密密钥或长期的OAuth refresh_token对第三方服务的情况下。

即使该应用程序也在同一文件上使用Realtime API,这种敏感数据是否可以安全地披露给其他应用程序?

我不认为任何其他应用程序可以模拟我的应用程序,因为他们不会有机会获得我的client_secret,不会有机会截获无论是refresh_token或与相关用户的access_token我应用程序。

红利问题:用户可以绕过我的应用程序并获得对这些敏感数据的访问吗?

我看不到用户冒充我的应用程序的方式。用户可以使用我的应用程序的公共client_id并授予自己通过正常的OAuth流的权限,但没有任何办法来换取有效access_token产生的code不知道client_secret


  1. “模型是通过应用程序隔离。如果用户打开带有两个不同的协作应用程序相同的文件,创建单独的文件。” Using Collaborative Models with Existing File Types
  2. “当你创建实时操场上的文档,它是由实时操场应用程序拥有。当您尝试然后gettry-it功能的响应,它采用特有的try-it无法看到的应用您创建的实时模型。“ Official answer to question "How to work with Realtime get and update api requests?"
  3. 也就是说,当应用程序使用不同client_id值以获得用于用户的OAuth凭据。

回答

0

不同应用程序的实时模型按照您的描述分离,但您应该假设模型中的任何内容在理论上都可以由ACL上的任何用户读取。

如果用户已授权您的应用程序,理论上是可以抢来提出要求,因为它需要从他们的计算机与请求一起发送OAuth令牌。

此外,如果您曾经在整个浏览器中加载可用的文档,则无论显示哪个部分。

+0

是的,我知道当使用客户端实时API在浏览器中加载模型时,我的应用程序的OAuth令牌可供用户使用。 但是,如果我只从我的服务器使用获取/更新方法(用于导入和导出实时模型),并且不会将OAuth令牌暴露给最终用户...那么在这些情况下,用户永远无法访问实时模型,对吗? – kiwidrew

相关问题