2014-01-22 84 views
3

我最近爲我製作的遊戲實現了OpenID(目前只有Google),並且我使用的是lightopenid。我要求用戶提供最少的信息(有意),當他們成功進行身份驗證時,我會返回一個長的URL,看起來像這樣https://www.google.com/accounts/o8/ud(我認爲它非常接近它的樣子,現在可以訪問數據庫),後面有一堆隨機字符。我在我的數據庫中使用這個URL作爲文檔ID,以便在登錄時快速檢索。向其他用戶公開OpenID鏈接安全嗎?

我開始在網站上添加播放器配置文件,但要做到這一點,我我需要公開將這個長URL給其他玩家。

我的問題是,我從Google安全地返回的URL顯示其他用戶,還是我需要找到另一個字段以暴露給用戶?

+0

我不知道OpenID標識符是否需要保密(可能不是,但這本身就是個好問題)。我所知道的是,他們往往是漫長而醜陋的。如果你已經擁有一個數據庫,那麼我想你已經有了一個定製的用戶表和一個自動生成的ID。使用這是一個明智的選擇。 –

+0

我爲我的數據庫使用CouchDB,並使用URL作爲文檔ID,所以沒有一個常規的自動生成的。 – snollygolly

回答

2

瞭解某人的OpenID標識符與知道他們的登錄信息具有相同的安全隱患。唯一的區別是OpenID標識符是指向某個服務器的URL,因此知道它會理論上允許惡意用戶攻擊標識端點(即該服務器) - 但這不是您網站的安全問題。

發佈它應該是安全的,但是否是一個好主意是另一回事。可讀的字符串(例如,假名)可能是用戶標識符的更好選擇。

也就是說,有些網站認爲他們的用戶的登錄是祕密的 - 大多數不會,但這是您必須自己做出的選擇。

+0

謝謝喵喵,我很感謝你的回答。我也存儲了一個友好名稱,但我決定讓用戶隨意更改他們的友好名稱,所以我擁有的唯一一致名稱(以及文檔的ID)就是他們的登錄URL。 – snollygolly

+0

或者您可以簡單地使用他們的第一個友好名稱作爲標識符,或者向他們索要一個。該策略也被各種網站使用。 – Mewp

相關問題