簡體   English   中英

驗證Facebook JavaScript API響應

[英]Validate Facebook JavaScript API response

有沒有一種方法可以驗證來自說:

FB.api(
  {
    method: 'fql.query',
    query: 'SELECT name, pic FROM profile WHERE id= ' + FB.getSession().uid
  },
  function(response) {
    //...
  }
);

與提供的sig參數相比,使用MD5哈希和應用程序秘密密鑰驗證cookie的登錄非常容易。 但是,對於api調用,什么會阻止某人使用Firebug更改響應? 顯然,這可以在后端獲取敏感信息,但是我想在客戶端上盡可能多地保持與Facebook的來回帶寬。

有什么想法嗎?

除了破壞自己在應用程序中的經驗外,我想不到用戶會做任何有害的事情,除非您獲得這些輸入(響應)並將其處理/將它們保存到數據庫中,例如:

  1. 有一個輸入字段,用戶可以通過該輸入字段更新其FB狀態,您是否也想將其保存到自己的數據庫中?
    在這種情況下,您仍然應該/應該進行常規的輸入驗證( mysql_real_escape ..etc)。
  2. 保存用戶電子郵件?
    一旦用戶通過身份驗證並授予您的應用程序訪問權限,您就已經可以使用服務器端調用獲取有關該用戶的幾乎所有信息。例如,保存用戶電子郵件,您不應該等待用戶發送給您可以使用email權限獲取它

您可以使用JavaScript(1)進行的任何驗證都是用戶可以使用自己的少量JS克服的。

如果您需要確保與Facebook的通訊安全,並且不會受到干擾,請在服務器上進行操作。

(1)例如

如果您有validateFacebookResponse(resp); 最終用戶只需要重新聲明功能即可。

function validateFacebookResponse(resp){
  return true;//always return true!
}

而您擁有的任何“安全性”都不在窗外。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM