0

衆所周知,在Google雲端數據存儲類中強制實施唯一屬性的唯一可靠方法是通過關鍵屬性。假設我們正在使用Google用戶API構建Google AppEngine(GAE)應用程序來驗證用戶,並且我們希望創建一種名爲Profile的類型。每個用戶只能有一個配置文件。將用戶對象ID存儲爲關鍵屬性以強制執行此唯一性是有意義的,對嗎?事實上,即使Google App Engine User API documentation說,這:將GAE user_id作爲數據存儲區密鑰的安全問題

使用用戶價值與數據存儲

用戶ID是穩定的;您可以在密鑰名稱或字符串屬性中使用它。因此,在使用用戶值時,要存儲用戶ID

但假設我們的應用程序需要在瀏覽器中顯示超鏈接到這些用戶配置文件。用user.user_id()字符串形成url是否合適?不應該將用戶標識視爲敏感信息?一個人的Google帳戶user_id在所有Google應用程序中都是相同的。泄漏到瀏覽器似乎並不正確,但我在GAE文檔中找不到任何禁止(除非我錯過了某些內容)。

現在如果用戶ID不應該泄露給客戶端,它應該被哈希?或者還有其他方式來設計一種Google用戶標識應該是唯一的類型嗎?

注意:我很好地使用用戶標識作爲密鑰,並將其與經過身份驗證的端點中的當前用戶進行比較。這個問題與它是否可以暴露給瀏覽器(感覺不正確)有關,如果不是,通常如何處理資源的擁有者(應用程序用戶)(例如博客帖子)需要的情況在應用程序中可見。

回答

2

谷歌安全似乎可以通過瀏覽器暴露。

Google+在顯示用戶個人資料和作爲其帖子網址一部分的網址中使用該網址。

+0

有趣的是,當我在AppEngine中存儲由get_current_user()。user_id()獲取的id並檢查Google雲端控制檯中的數據存儲時,我看到的id與https://plus.google中的id不同。 com /在我的個人資料網址。 –

+0

@RayToal GAE用戶API不一定使用與Google+或其他Google認證系統相同的ID。 –

相關問題