目前,对于我的Facebook App的身份验证,我在PHP中执行以下操作:
if($_GET["code"] == null)
{
Header("Location: https://graph.facebook.com/oauth/authorize?
client_id=[MY_APP_ID]&
redirect_uri=[THIS_CURRENT_URL]&
scope=publish_stream");
exit();
}
else if($_GET["access_token"] == null)
{
$code = $_GET["code"];
Header("Location: https://graph.facebook.com/oauth/access_token?
client_id=[MY_APP_ID]&
redirect_uri=[THIS_CURRENT_URL]&
client_secret=[MY_APP_SECRET]&
code=$code");
exit();
}
else
{
echo($_GET["access_token"]);
}
Run Code Online (Sandbox Code Playgroud)
这样安全吗?难道恶意用户不能"拦截"重定向并查看我的App ID和App Secret吗?
这是不安全的教科书定义.该Location:
头,像所有的标题,被发送到用户的浏览器,以使该数据已知用户的浏览器的明确目的.任何运行调试代理的用户(如Charles或FireBug)都可以使用标题的内容,我强烈怀疑,它也可以在浏览器的地址栏中使用.
如果允许用户查看该数据(通常是单点登录应用程序的情况),以这种方式发送数据是完全可以接受的,但应用程序机密几乎肯定是不可接受的.
考虑使用curl
直接连接到Facebook服务器.
归档时间: |
|
查看次数: |
598 次 |
最近记录: |