ホームページ >バックエンド開発 >PHPの問題 >PHP でリファラーアドレスを偽造する 3 つの方法は何ですか?

PHP でリファラーアドレスを偽造する 3 つの方法は何ですか?

青灯夜游
青灯夜游オリジナル
2021-09-18 15:46:222407ブラウズ

方法: 1. 「file_get_contents($url,false,$context)」関数を使用します; 2. CURL メソッド、curl_init()、curl_setopt()、curl_exec() およびその他の関数を使用します; 3. を使用します。 fsockopen()関数。

PHP でリファラーアドレスを偽造する 3 つの方法は何ですか?

このチュートリアルの動作環境: 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 サイトの他の関連記事を参照してください。

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