Apakah tiga cara untuk memalsukan alamat perujuk dalam PHP?

青灯夜游
Lepaskan: 2023-03-12 18:02:02
asal
2351 orang telah melayarinya

Kaedah: 1. Gunakan fungsi "file_get_contents($url,false,$context)"; 2. Kaedah CURL, gunakan curl_init(), curl_setopt(), curl_exec() dan fungsi lain; fsockopen( )fungsi.

Apakah tiga cara untuk memalsukan alamat perujuk dalam PHP?

Persekitaran pengendalian tutorial ini: sistem Windows 7, PHP versi 7.1, komputer DELL G3

php mendapat alamat URL sebelumnya halaman halaman semasa , iaitu halaman mana halaman semasa dipautkan, anda boleh menggunakan $_SERVER['HTTP_REFERER'];

Tetapi $_SERVER['HTTP_REFERER'] juga boleh dipalsukan dan ditipu. Terdapat tiga cara untuk memalsukan dan memperdayakan $_SERVER['HTTP_REFERER']

Nota: Platform tetingkap menggunakan nginx persekitaran bersepadu phpstudy ini tidak sah biasa, dan versi platform lain belum diuji

Kaedah pertama: 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;
Salin selepas log masuk

stream_context_create dalam file_get_contents memalsukan parameter penting sumber.

Kaedah kedua: 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);
Salin selepas log masuk

Kaedah ketiga: 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);
Salin selepas log masuk

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Atas ialah kandungan terperinci Apakah tiga cara untuk memalsukan alamat perujuk dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan