我有一個傳統的Devise用戶認證系統,它簡單地使用電子郵件和密碼登錄。我想添加Facebook登錄。我有這個主要工作,但我很好奇處理邊緣案件的安全影響。Facebook的Omniauth電子郵件地址可以安全地信任嗎?
讓我們在這裏說這樣的事情發生:
- 用戶目前是未經驗證的,但與電子郵件「[email protected]」
- 用戶點擊「與Facebook登錄」現有的帳戶,從授權訪問Facebook的
- 的Facebook回調到我的服務器顯示電子郵件作爲「[email protected]」
在這一點上,我們有沒有附加的Facebook憑據的用戶帳戶,我們有一個Facebo沒有附加用戶的確認憑證,但他們都有相同的電子郵件。
所以在這一點上有兩個選擇:
- 投訴的用戶認爲該電子郵件地址已被其他用戶使用,而到Facebook添加到自己的帳戶,他們必須首先登錄(與他們的密碼)並關聯Facebook帳戶。
- 或者直接登錄到具有相同電子郵件的帳戶,然後將facebook憑證附加到其帳戶。
選項2是首選,因爲它對用戶來說比較容易,但它意味着通過Facebook訪問一個前所未有的Facebook帳戶。如果服務器從Facebook獲得的電子郵件地址可能被欺騙或以任何方式更改,這是一個巨大的安全問題。
但我的服務器相信用戶對電子郵件安全,Facebook也是如此。但我能相信他們之間的溝通嗎?
我不確定您是否注意到,但我鏈接的問題在2周前已更新。顯然Facebook已經修復了它的錯誤,所以如果它已經被確認,你將只收到用戶的電子郵件。既然您現在可以信任該電子郵件,我會相應地編輯我的答案。 – Ashitaka