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上进行中继。我的应用程序只接收访问令牌,并从服务器到服务器的调用中获取其余数据。