Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Facebook JS SDK的安全问题_Php_Jquery_Facebook_Facebook Graph Api_Facebook Javascript Sdk - Fatal编程技术网

Php Facebook JS SDK的安全问题

Php Facebook JS SDK的安全问题,php,jquery,facebook,facebook-graph-api,facebook-javascript-sdk,Php,Jquery,Facebook,Facebook Graph Api,Facebook Javascript Sdk,我正在使用facebook JS sdk登录用户。以下是我遵循的步骤:- 1) 我使用FB.login(…)获取用户的详细信息。 2) 现在,在收到Facebook的详细信息后,我使用jQuery的$.POST(..)函数向php页面发送一个POST请求,比如说FBUser.php,参数为name,uid(Facebook用户Id),email和访问令牌,用于发布操作 3) 现在在FBUser.php页面中,我做了所有的事情,比如将短期令牌转换为长期令牌,然后检查收到的uid是否存在于我的us

我正在使用facebook JS sdk登录用户。以下是我遵循的步骤:-

1) 我使用
FB.login(…)
获取用户的详细信息。
2) 现在,在收到Facebook的详细信息后,我使用jQuery的
$.POST(..)
函数向php页面发送一个POST请求,比如说
FBUser.php
,参数为
name
uid
(Facebook用户Id),
email
访问
令牌
,用于
发布操作

3) 现在在
FBUser.php
页面中,我做了所有的事情,比如将短期令牌转换为长期令牌,然后检查收到的
uid
是否存在于我的
users
表中。如果不是,我将创建一个新用户,否则我将登录旧用户

今天,我才意识到我在做一个如此大的安全妥协,因为任何人都可以使用现有用户的
uid
FBUser.php
页面发送POST请求,并访问他的帐户。但是,另一方面,我确信一些大型网站也使用JSSDK。很明显,我在某个地方错了。安全登录用户并防止其帐户被黑客攻击的正确步骤是什么?

您应该首先匹配应用程序和用户id,然后检查访问令牌,如下所示:
graph.facebook.com/debug_-token?输入_-token={token-check}&access_-token={app-token}


您可以从

获取应用令牌。您可以使用发送给您的访问令牌获取用户的uid,使用此令牌访问Facebook图形并查询“/me”。
您不应该中继客户端发送的uid。我的应用程序只接收访问令牌,并从服务器对服务器调用获取其余数据。

@CBroe,感谢您提供链接。没有去那部分我想说的是你处理了@CBroe评论的答案,但是你给我的链接帮了我…+1