繁体   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