标题("位置:[URL]").....安全吗?

0 php facebook

目前,对于我的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吗?

Vic*_*let 6

这是不安全的教科书定义.Location:头,像所有的标题,被发送到用户的浏览器,以使该数据已知用户的浏览器的明确目的.任何运行调试代理的用户(如Charles或FireBug)都可以使用标题的内容,我强烈怀疑,它也可以在浏览器的地址栏中使用.

如果允许用户查看该数据(通常是单点登录应用程序的情况),以这种方式发送数据是完全可以接受的,但应用程序机密几乎肯定是不可接受的.

考虑使用curl直接连接到Facebook服务器.