>  기사  >  백엔드 개발  >  PHP에서 HTTP_REFERER 페이지의 URL 소스를 위조하는 세 가지 방법

PHP에서 HTTP_REFERER 페이지의 URL 소스를 위조하는 세 가지 방법

高洛峰
高洛峰원래의
2017-01-03 17:46:032143검색

php는 현재 페이지의 이전 페이지, 즉 현재 페이지가 링크된 페이지의 URL 주소를 가져옵니다. $_SERVER['HTTP_REFERER']를 사용할 수 있지만 이 소스 페이지의 URL 주소는 다음과 같습니다. 이 글에서는 HTTP_REFERER 페이지 URL을 위조하는 세 가지 방법을 소개합니다.

$_SERVER['HTTP_REFERER']는 페이지의 상위 소스 페이지를 결정하기 위해 PHP에서 사용하는 슈퍼 변수입니다. $_SERVER['HTTP_REFERER']를 사용하여 어떤 페이지에서 입력했는지 확인할 수 있습니다. . 이 페이지는 더 나은 추적을 위해 추가되었습니다.

그러나 $_SERVER['HTTP_REFERER']도 위조하고 속일 수 있습니다. $_SERVER['HTTP_REFERER']

첫 번째 방법: file_get_contents

$opt=array('http'=>array('header'=>"Referer: $refer")); 
$context=stream_context_create($opt); 
$file_contents = file_get_contents($url,false, $context);

file_get_contents의 stream_context_create는 소스의 중요한 매개변수를 위조합니다.

두 번째 방법: CURL

$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, "http://www.manongjc.com"); 
curl_setopt ($ch, CURLOPT_REFERER, "http://www.manongjc.com"); 
curl_exec ($ch); 
curl_close ($ch);

http://www.manongjc.com 매개변수는 가짜 URL 주소입니다.

세 번째 방법: fsockopen

$server = 'www.manongjc.com'; 
$host = 'www.manongjc.com'; 
$target = 'index.php'; 
$referer = 'http://www.manongjc.com/'; // Referer 
$port = 80; 
$fp = fsockopen($server, $port, $errno, $errstr, 30); 
if (!$fp){ 
 echo "$errstr ($errno)\n"; 
}else{ 
$out = "GET $target HTTP/1.1\r\n"; 
$out .= "Host: $host\r\n"; 
$out .= "Referer: $referer\r\n"; 
$out .= "Connection: Close\r\n\r\n"; 
fwrite($fp, $out); 
while (!feof($fp)){ 
echo fgets($fp, 128); 
} 
fclose($fp); 
}

위 세 가지 방법 중 세 번째 방법인 fsockopen이 성능과 효과가 가장 좋으므로 세 번째 방법을 사용하는 것이 좋습니다.

위는 PHP로 위조된 HTTP_REFERER 페이지의 URL 소스에 대한 정보를 정리한 것입니다. 앞으로도 관련 정보를 계속 추가하겠습니다.

HTTP_REFERER 페이지 URL 소스를 위조하는 PHP 세 가지 방법과 관련 기사를 더 보려면 PHP 중국어 웹사이트에 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.