當應用程序將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