方法: 1. 「file_get_contents($url,false,$context)」関数を使用します; 2. CURL メソッド、curl_init()、curl_setopt()、curl_exec() およびその他の関数を使用します; 3. を使用します。 fsockopen()関数。
このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター
php は前の URL アドレスを取得します。現在のページのページ、つまり現在のページがどのページからリンクされているかを確認するには、$_SERVER['HTTP_REFERER'];
を使用できますが、$_SERVER['HTTP_REFERER'] を偽造したり騙したりすることもできます。 $_SERVER['HTTP_REFERER']
注: ウィンドウ プラットフォームは phpstudy 統合環境 nginx を使用します。この方法は無効です。Apache は無効です。通常、および他のプラットフォームのバージョンはテストされていません
最初のメソッド: file_get_contents
$url = "http://localhost/test/test.php"; $refer="http://www.aa.com"; $opt=array('http'=>array('header'=>"Referer: $refer")); $context=stream_context_create($opt); $file_contents = file_get_contents($url,false, $context); echo $file_contents;
stream_context_create in file_get_contents の重要なパラメータを偽造します。起源。
#2 番目のメソッド: CURL
$url = "http://localhost/test/test.php"; // 请求的页面地址 $refer="http://www.aa.com"; //伪造的页面地址 $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL,$url); curl_setopt ($ch, CURLOPT_REFERER,$refer); curl_exec ($ch); curl_close ($ch);
3 番目のメソッド: fsockopen
$url="http://localhost/test/test.php"; $target = "http://www.manongjc.com/"; /** sockopen 伪造 网站来源地址 * @parem $url 要访问的页面地址 * @parem $target 伪造来源页面 * @parem $port 网站端口 默认 80 * @parem 页面脚本执行时间 默认 30 s * */ function referer($url,$target,$port=80,$t=30) { $info=parse_url($url); $fp = fsockopen($info["host"], $port, $errno, $errstr, $t); if(!$fp) { echo "$errstr($errno)".PHP_EOL; } else { $out = "GET ".$info['path']." HTTP/1.1".PHP_EOL; $out .= "Host: ".$info["host"].PHP_EOL; $out .= "Referer: ".$target.PHP_EOL; $out .= "Connection: Close".PHP_EOL; $out .= PHP_EOL; fwrite($fp, $out); while(!feof($fp)) { echo fgets($fp); // 发送 head 请求头信息 } fclose($fp); } } //函数调用 referer($url,$target);推奨される学習: 「
PHP ビデオ チュートリアル 」
以上がPHP でリファラーアドレスを偽造する 3 つの方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。