2012-05-18 3 views
0

XML 출력을 제공하는 URL이 있습니다.PHP 인증을 통해 원격 URL에서 XML 가져 오기 - 403 오류

$url = "http://username:[email protected]"; 


$xml = @simplexml_load_file($url); 
print_r($http_response_header); 

내가 가진 : 나는 403이 금지 얻을 내가 PHP 파일을 통해 액세스하려고 할 때

http://username:[email protected] 

: 내가 형식을 사용하여 브라우저를 통해 액세스 할 수있는 사용자 이름과 암호가 필요합니다 curl을 사용하고 사용자 에이전트를 브라우저로 설정하려고했으나 여전히 데이터를 반향하지 않습니다.

$username = "user"; 
$password = "pass"; 
$process = curl_init("http://user:[email protected]/feed?feed_id=1"); 
//curl_setopt($process, CURLOPT_HTTPHEADER, array('Content-Type: application/xml')); 
curl_setopt($process, CURLOPT_HEADER, 1); 
curl_setopt($process, CURLOPT_CUSTOMREQUEST, 'POST'); 
curl_setopt($process, CURLOPT_USERPWD, $username . ":" . $password); 
curl_setopt($process, CURLOPT_TIMEOUT, 30); 
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE); 
$return = curl_exec($process); 
echo $return; 

나는 또한이 주위에 방법을 내가 PHP를 통해 모든 연결을 거부 액세스하기 위해 노력하고있어 서버가 403 금지

을 제공하거나이 배의 HTTP 요청 (2)를 사용하여 시도? 감사합니다.

+0

사용자 제거 : curl init을 전달하고 브라우저 사용자 에이전트를 헤더에 추가하십시오. – Josnidhin

+0

감사 브라우저 사용자 에이전트를 어떻게 추가합니까? –

+0

curl_setopt ($ process, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1, ko-kr, rv : 1.9.1.2) Gecko/20090729 Firefox/3.5.2 GTB5'); 이 같은. – Josnidhin

답변

0

요청하는 페이지가 매우 까다 롭다고합니다. 브라우저가하는 것처럼 정확하게 모든 헤더를 보내야합니다.

  • 파이어 폭스의 방화범을 설치하거나
  • 이 브라우저가하는대로 정확하게 PHP 스크립트에서 헤더를 보내기 보호 된 페이지
  • 를 요청할 때 전송받을 모든 헤더를 기록 크롬의 속성을 사용합니다.
  • 작동하지 않는 경우 Wireshark를 사용하여 실제로 올바르게 작동하는지 확인하십시오.

나는 또한 페이지가 사용자 에이전트 헤더를 찾는다는 것을 의심 할뿐만 아니라 암호도 찾습니다.

또 다른 문제는 서버와 다른 IP를 가질 수 있으며 IP 만 허용 목록에 포함될 수 있다는 것입니다.

관련 문제