1

我正在使用facebook JS sdk登錄用戶。這些是我遵循的步驟: -

1)我使用FB.login(...)來獲取用戶的詳細信息。
2)現在,從Facebook收到資料後,我送使用jQuery的$.post(..)功能的PHP頁面POST請求說FBUser.php與參數 - nameuid(Facebook的用戶ID),emailaccess_tokenpublish_actions
3)現在在FBUser.php頁面中,我會執行所有這些操作,例如將短壽命令牌轉換爲長壽命,然後檢查收到的uid是否存在於我的users表中。如果不是,我創建一個新用戶,否則我登錄舊用戶。

今天,我剛剛意識到我做出瞭如此大的安全性妥協,因爲任何人都可以通過現有用戶的uid發送POST請求到FBUser.php頁面並訪問他的帳戶。但另一方面,我相信一些大的網站也使用JS SDK。很顯然,我錯了某個地方。如何安全地登錄用戶並防止他的帳戶被黑客入侵?Facebook JS SDK的安全問題

+1

https://developers.facebook.com/docs/facebook-login/login-flow-for-web/v2.3#confirm – CBroe

+0

@CBroe,感謝您給予鏈接。沒有去那個部分 – khandelwaldeval

回答

1

你應該首先滿足應用和用戶ID,那麼你應該檢查訪問令牌,就像這樣: graph.facebook.com/debug_token?input_token={token-to-check}&access_token={app-token}

你可以從https://developers.facebook.com/tools/accesstoken/

+0

我想說你從@ CBroe的評論應對了答案,但是你給的鏈接幫助了我所以... + 1 – khandelwaldeval

1

應用令牌你可以得到的的UID用戶使用發送給您的訪問令牌,通過使用此令牌訪問Facebook圖形並查詢「/ me」。 您不應該在客戶端發送的uid上進行中繼。我的應用程序只接收訪問令牌,並從服務器到服務器的調用中獲取其餘數據。