当应用程序将Drive Realtime API与存储在Drive中的用户文件结合使用时,它可以访问与该文件关联的实时协作模型。已经在官方参考资料[1]和StackOverflow [2]的以前回答中记录了当两个不同的应用程序[3]使用具有相同Drive文件的Realtime API时,他们将访问不同的协作楷模。将秘密保存在实时模型中是否安全?
让我们假设我有一个client_secret
服务器端应用程序和用户的OAuth refresh_token
存储,只有我可以访问的服务器上,而用户的access_token
进行直接调用(通过HTTPS)时只留下该服务器各种Google API。假设在我的应用程序使用的驱动API的realtime.get
和realtime.update
方法来保留一些敏感数据在用户的硬盘文件,的合作模式,如加密密钥或长期的OAuth refresh_token
对第三方服务的情况下。
即使该应用程序也在同一文件上使用Realtime API,这种敏感数据是否可以安全地披露给其他应用程序?
我不认为任何其他应用程序可以模拟我的应用程序,因为他们不会有机会获得我的client_secret
,不会有机会截获无论是refresh_token
或与相关用户的access_token
我应用程序。
红利问题:用户可以绕过我的应用程序并获得对这些敏感数据的访问吗?
我看不到用户冒充我的应用程序的方式。用户可以使用我的应用程序的公共client_id
并授予自己通过正常的OAuth流的权限,但没有任何办法来换取有效access_token
产生的code
不知道client_secret
。
- “模型是通过应用程序隔离。如果用户打开带有两个不同的协作应用程序相同的文件,创建单独的文件。” Using Collaborative Models with Existing File Types
- “当你创建实时操场上的文档,它是由实时操场应用程序拥有。当您尝试然后
get
在try-it
功能的响应,它采用特有的try-it
无法看到的应用您创建的实时模型。“ Official answer to question "How to work with Realtimeget
andupdate
api requests?" - 也就是说,当应用程序使用不同
client_id
值以获得用于用户的OAuth凭据。
是的,我知道当使用客户端实时API在浏览器中加载模型时,我的应用程序的OAuth令牌可供用户使用。 但是,如果我只从我的服务器使用获取/更新方法(用于导入和导出实时模型),并且不会将OAuth令牌暴露给最终用户...那么在这些情况下,用户永远无法访问实时模型,对吗? – kiwidrew