El código de ejemplo de referencia falsificado se utiliza principalmente para romper con el sistema anti-sanguijuelas.
Aquí está el programa completo. Puede modificarlo usted mismo para aplicaciones específicas.
El ejemplo que doy aquí es muy simple. De hecho, se pueden desarrollar muchas aplicaciones a partir de este ejemplo. Por ejemplo, ocultar la dirección URL real... Jeje, simplemente analízalo tú mismo y crea un nuevo archivo file.php aquí. El siguiente parámetro es la dirección de destino del referente que debe falsificarse. Por ejemplo: archivo.php/http://www.xxx.xxx/xxx.mp3
<?
$url=str_replace('/file.php/','',$_SERVER["REQUEST_URI"]);// Obtenga la URL que debe convertirse. Estoy siendo vago aquí y no haré la verificación de seguridad. Lo agregaré yo mismo si es necesario.
$downfile=str_replace(" ","%20",$url);//Reemplace espacios y similares, puede reemplazarlos según la situación real
$downfile=str_replace(" http://","",$downfile);// Eliminar http://
$urlarr=explode("/",$downfile);//Utilice "/" para descomponer el nombre de dominio
$dominio=$urlarr[0];//Nombre de dominio
$getfile=str_replace($urlarr[0],'',$downfile);//Obtener la parte GET en el encabezado
$content = @fsockopen("$domain", 80, $errno, $errstr, 12);//Conéctese al host de destino
if (!$content){//Si el enlace no se puede cargar, se mostrará un error
die("Lo sentimos, no puedo conectarme a $dominio.");
}
fputs($contenido, "GET $getfile HTTP/1.0rn");
fputs($contenido, "Host: $dominiorn");
fputs($content, "Referer: $domainrn");//Pieza forjada
fputs($content, "Agente de usuario: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)rnrn");
mientras (!feof($contenido)) {
$tp.=fgets($contenido, 128);
if (strstr($tp,"200 OK")){ //Aquí se debe dar alguna explicación. La primera línea del encabezado suele ser el estado del archivo solicitado. Para obtener más información, consulte los códigos de estado HTTP 1.1 y sus significados hi.baidu.com/110911/blog/item/21f20d2475af812ed50742c5.html Este es el estado de solicitud de archivo normal, simplemente rediríjalo directamente. Continuar la ejecución de programas en otros estados.
encabezado("Ubicación:$url");
morir();
}
}
// Redirección 302, la mayoría de los sistemas anti-hotlink primero determinan el referente y luego redirigen a la dirección real si es correcta. Lo siguiente es para obtener la dirección real.
$arr=explotar("n",$tp);
$arr1=explode("Ubicación: ",$tp);//Extrae la dirección verdadera detrás de la Ubicación
$arr2=explotar("n",$arr1[1]);
header('Content-Type:application/force-download');//Forzar descarga
header("ubicación:".$arr2[0]);//Redirigir a la dirección de destino
morir();
?>
Este programa solo se puede utilizar para el sistema anti-hotlinking que utiliza un referente para determinar si está hotlinking. Si se utilizan otros métodos especiales para evitar el hotlinking, esta estimación no será aplicable.