ホームページ  >  記事  >  バックエンド開発  >  PHPでHTTP_REFERERページのURLソースを偽造する3つの方法

PHPでHTTP_REFERERページのURLソースを偽造する3つの方法

高洛峰
高洛峰オリジナル
2017-01-03 17:46:032188ブラウズ

php は、現在のページの前のページの URL アドレス、つまり、現在のページがどのページからリンクされているかを取得します。$_SERVER['HTTP_REFERER'] を使用できますが、このソース ページの URL アドレスは偽造される可能性があります。この記事では、HTTP_REFERER ページの URL を偽造する 3 つの方法を紹介します。

$_SERVER['HTTP_REFERER'] は、ページの親ソース ページを決定するために PHP によって使用されるスーパー変数です。$_SERVER['HTTP_REFERER'] を使用して、どのページからこのページに入ったかを決定できます。追跡は可能です。

しかし、$_SERVER['HTTP_REFERER'] も偽造して騙すことができます $_SERVER['HTTP_REFERER'] を偽造して騙すには 3 つの方法があります

最初の方法: 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 の重要性は、偽造パラメータのソース。

2 番目の方法: 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 アドレスです。

3番目の方法: 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); 
}

上記の3つの方法の中で、3番目の方法fsockopenが最もパフォーマンスと効果が優れているため、3番目の方法を使用することをお勧めします。

上記はPHPでの偽装されたHTTP_REFERERページのURLのソースに関する情報をまとめたものです。今後も関連情報を追加していきますので、よろしくお願いいたします。

HTTP_REFERER ページ URL ソースを偽造する PHP 3 つの方法の詳細と関連記事については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。