2014-06-23 1 views
1

PHP SDK 4.0을 사용하여 Facebook 로그인을 통합하려고했습니다. 모두가 성공적인 로그인 후 페이스 북에서 리디렉션 페이지에없는 HTTP_REFERER 제외하고는 좋은 것입니다 (사용자는 응용 프로그램 및 보조금 요청 허가 권한을 부여합니다.)PHP SDK 4.0을 사용한 Facebook 로그인 통합 - 리디렉션시 HTTP_REFERER가 누락되었습니다.

로그인 페이지 :

<?php 
... 
$loginHelper = new FacebookRedirectLoginHelper('localhost/login/facebook/verify.php'); 
$loginURL = $loginHelper->getLoginUrl(); 
header("Location: $loginURL"); 
... 
?> 

verify.php 페이지 :

<?php 
if (isset($_SERVER['HTTP_REFERER'])) { 
    if (strpos($_SERVER['HTTP_REFERER'], 'facebook.com') !== false) { 
     // Redirected from Facebook 
     ... 
    } 
} 
?> 

php.net 문서 상태 :

사용자 에이전트를 현재 페이지 으로 안내 한 페이지의 주소 (있을 경우). 이것은 사용자 에이전트에 의해 설정됩니다. 모든 사용자 에이전트가 을 설정하지는 않으며 일부는 HTTP_REFERER를 기능으로 수정하는 기능을 제공합니다. 요컨대, 그것은 정말로 신뢰할 수 없습니다.

그래서이 페이스 북은이 특정 헤더를 설정하지 않았습니까? 아니면 어딘가에서 잘못하고있는 것입니까?

답변

1

헤더를 Facebook 자체가 아니라 설정해야하는 웹 브라우저입니다. 사이트가 HTTPS 사이트에서 연결되거나 리디렉션되는 경우 브라우저는 리퍼러를 설정하지 않습니다.

+0

예. Facebook OAuth는 보안 URL을 사용합니다. 따라서 URL이 HTTPS 일 때 리퍼러를 알 수 없습니까? –

+0

URL을 알 수 있습니까? –

+0

가능하면 브라우저의 보안 버그로 간주 될 것이라고 확신합니다. 그리고 왜 그걸 필요로할까요? – WizKid