2012-06-19 15 views
0

我目前正在實施Javascript Facebook登錄API。如何驗證請求是否來自您網站上的腳本?

該客戶端腳本基於來自Facebook的回調響應,然後向我們網站上的URL發送帶查詢字符串參數的請求。根據該URL中的電子郵件,客戶端已通過身份驗證。

這不安全。沒有其他的我們可以驗證的令牌是從Facebook返回的(據我所知),並且我們希望根據查詢字符串參數中的電子郵件登錄用戶,並且沒有密碼。

我想添加另一個查詢字符串參數,該參數爲我們提供了一些確保查詢字符串數據來自Facebook之後的JavaScript重定向的響應。

我在想這應該是某種客戶端腳本創建的散列值,我可以在服務器端進行比較。但是,用於創建此密鑰的每個資源都可供攻擊者,客戶端cookie或客戶端腳本檢查。

有沒有一種常見的安全方法來解決這個問題,我可以使用?

回答

0

每次您對用戶進行身份驗證時,都會向Facebook傳遞一個唯一的回調URL。

此URL應包含一些安全令牌,如果存在,它將標識登錄嘗試的真實性。

1

的Facebook顯然使用OAuth。在不涉及太多細節的情況下(您可以在相關的OAuth和FB文檔中找到),OAuth使用您的服務器與服務提供商(本例中爲Facebook)共享的祕密進行操作,該服務提供商永遠不會透露給前端Javascript ,並用於確認您收到的回撥是否爲正品。