La variable HTTP-REFERER se ha vuelto cada vez menos confiable y puede falsificarse.
A continuación se explica cómo falsificarlo:
ASP:
dim http
set http=server.createobject("MSXML2.XMLHTTP") '//MSXML2.serverXMLHTTP también se puede utilizar
Http.open "OBTENER", URL, falso
Http.setRequestHeader "Referente", " http://www.devdao.com/ "
http.enviar()
PHP (siempre que curl esté instalado):
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, " http://www.devdao.com/xxx.asp ");
curl_setopt ($ch, CURLOPT_REFERER, " http://www.devdao.com/ ");
curl_exec ($ch);
curl_close ($ch);
PHP (no instale curl y use sock)
$server = 'www.devdao.com';
$host = 'www.devdao.com';
$objetivo = '/xxx.asp';
$referente = 'http://www.devdao.com/'; // Referente
$puerto = 80;
$fp = fsockopen($servidor, $puerto, $errno, $errstr, 30);
si (!$fp)
{
echo "$errstr ($errno)<br />n";
}
demás
{
$out = "OBTENER $objetivo HTTP/1.1rn";
$out .= "Host: $hostrn";
$out .= "Cookie: ASPSESSIONIDSQTBQSDA=DFCAPKLBBFICDAFMHNKIGKEGrn";
$out .= "Referente: $referentern";
$out .= "Conexión: Cerrarrnrn";
fwrite($fp, $salida);
mientras (!feof($fp))
{
eco fgets($fp, 128);
}
fclose($fp);
}
VB.NET/C#.NET
Atenuar oXMLHttp como MSXML2.XMLHTTP30 = Nuevo MSXML2.XMLHTTP30()
o
MSXML2.XMLHTTP30 oXMLHttp = nuevo MSXML2.XMLHTTP30();
oXMLHttp.open(....
oXMLHttp.setRequestHeader(...
oXMLHttp.enviar(..
javascript
xmlHttp.setRequestHeader("Referer", " http://URL");// ???Jaja~falso~
JS no es compatible ^_^
El principio es que sock construye el encabezado http para enviar datos. También se pueden utilizar otros lenguajes como Perl.
Actualmente, la forma más sencilla de defenderse de referencias falsificadas es utilizar códigos de verificación (Sesión).
Ahora existen algunas empresas comerciales que pueden evitar el software de hotlinking, como UUDOG, linkgate, VirtualWall, etc., todas las cuales han desarrollado archivos dll para usar en IIS.
Algunos utilizan verificación de cookies y control de subprocesos, y otros pueden generar nombres de archivos aleatoriamente y luego reescribir la URL. De hecho, algunos métodos pueden lograr buenos resultados.
Sin embargo, siempre hay una manera de resolver estos trucos triviales.