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 サイトに注目してください。