Facebook JS SDK 的安全问题
Security issue with Facebook JS SDK
我正在使用 facebook JS sdk 登录用户。这些是我遵循的步骤:-
1) 我使用 FB.login(...)
来获取用户的详细信息。
2) 现在,在收到来自 Facebook 的详细信息后,我使用 jQuery 的 $.post(..)
函数向 php 页面发送一个 POST 请求,例如 FBUser.php
参数 - name
、uid
(Facebook 用户 ID)、email
和 access_token
for publish_actions
.
3) 现在在 FBUser.php
页面中,我做了所有的事情,比如将短期令牌转换为长期令牌,然后我检查收到的 uid
是否存在于我的 users
table。如果不是,我创建一个新用户,否则我登录旧用户。
今天,我才意识到我在安全方面做出了如此大的妥协,因为任何人都可以使用 uid
向 FBUser.php
页面发送 POST 请求现有用户的权限并访问他的帐户。但是,另一方面我确信一些大网站也使用 JS SDK。很明显,我在某个地方错了。安全登录用户并防止他的帐户被黑客入侵的正确程序是什么?
您应该首先匹配应用程序和用户 ID,然后您应该检查访问令牌,如下所示:
graph.facebook.com/debug_token?input_token={token-to-check}&access_token={app-token}
获取应用令牌
您可以使用发送给您的访问令牌获取用户的 uid,方法是使用此令牌访问 Facebook 图和查询“/me”。
您不应该中继客户端发送的 uid。我的应用程序仅接收访问令牌并从服务器到服务器调用获取其余数据。
我正在使用 facebook JS sdk 登录用户。这些是我遵循的步骤:-
1) 我使用 FB.login(...)
来获取用户的详细信息。
2) 现在,在收到来自 Facebook 的详细信息后,我使用 jQuery 的 $.post(..)
函数向 php 页面发送一个 POST 请求,例如 FBUser.php
参数 - name
、uid
(Facebook 用户 ID)、email
和 access_token
for publish_actions
.
3) 现在在 FBUser.php
页面中,我做了所有的事情,比如将短期令牌转换为长期令牌,然后我检查收到的 uid
是否存在于我的 users
table。如果不是,我创建一个新用户,否则我登录旧用户。
今天,我才意识到我在安全方面做出了如此大的妥协,因为任何人都可以使用 uid
向 FBUser.php
页面发送 POST 请求现有用户的权限并访问他的帐户。但是,另一方面我确信一些大网站也使用 JS SDK。很明显,我在某个地方错了。安全登录用户并防止他的帐户被黑客入侵的正确程序是什么?
您应该首先匹配应用程序和用户 ID,然后您应该检查访问令牌,如下所示:
graph.facebook.com/debug_token?input_token={token-to-check}&access_token={app-token}
您可以使用发送给您的访问令牌获取用户的 uid,方法是使用此令牌访问 Facebook 图和查询“/me”。 您不应该中继客户端发送的 uid。我的应用程序仅接收访问令牌并从服务器到服务器调用获取其余数据。