[英]Can Facebook Omniauth email address be securely trusted?
我有一個傳統的Devise用戶身份驗證系統,該系統僅使用電子郵件和密碼即可登錄。 我想添加Facebook登錄。 我的工作大部分都在進行,但是我對處理邊緣案例的安全性感到好奇。
假設發生這種情況:
此時,我們有一個用戶帳戶,沒有附加的Facebook憑據,並且我們有一個Facebook憑據,沒有附加的用戶,但是他們都有相同的電子郵件。
因此,目前有兩種選擇:
選項2是首選,因為它對用戶來說更容易,但是它意味着通過Facebook授予從未訪問過Facebook的帳戶的訪問權限。 如果可以以任何方式欺騙或更改服務器從Facebook獲得的電子郵件地址,這將是一個巨大的安全問題。
但是我的服務器相信用戶可以安全地接收電子郵件,Facebook也是如此。 但是我可以信任他們之間的通信嗎?
如果兩個服務均已確認電子郵件,則只能鏈接帳戶。
在您這一邊,您應該確認用戶的電子郵件(使用Devise的Confirmable模塊 )。
在Facebook方面,他們應該發送一個verified_email
字段,以確認該帳戶的電子郵件地址已被確認。 不幸的是,Facebook僅返回一個verified
字段 ,該字段不僅受電子郵件影響,而且受SMS確認和輸入有效信用卡的影響。
但是,似乎只有在確認電子郵件后,才會退回該電子郵件。 有關更多信息,請參見此SO問題 。 問題是我找不到可以證實這一點的官方文檔( 這與我能得到的非常接近 ),因此與此同時,我建議您自己進行測試,以確保絕對正確。 如果您找到正確的文檔,請不要忘記在此處添加評論。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.