La variable HTTP-REFERER est devenue de moins en moins fiable et peut être falsifiée.
Voici comment faire semblant :
ASP :
dim http
set http=server.createobject("MSXML2.XMLHTTP") '//MSXML2.serverXMLHTTP peut également être utilisé
Http.open "GET",url,false
Http.setRequestHeader "Référent", http://www.devdao.com/ "
Http.envoyer()
PHP (à condition que curl soit installé) :
$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 (ne pas installer curl et utiliser sock)
$server = 'www.devdao.com';
$hôte = 'www.devdao.com';
$target = '/xxx.asp';
$référent = 'http://www.devdao.com/'; // Référent
$port = 80 ;
$fp = fsockopen($server, $port, $errno, $errstr, 30);
si ($fp)
{
echo "$errstr ($errno)<br />n";
}
autre
{
$out = "OBTENIR $cible HTTP/1.1rn" ;
$out .= "Hôte : $hôtern" ;
$out .= "Cookie : ASPSESSIONIDSQTBQSDA=DFCAPKLBBFICDAFMHNKIGKEGrn" ;
$out .= "Référent : $référentrn" ;
$out .= "Connexion : Fermerrnrn" ;
fwrite($fp, $out);
tandis que (!feof($fp))
{
echo fgets($fp, 128);
}
fclose($fp);
}
VB.NET/C#.NET
Dim oXMLHttp As MSXML2.XMLHTTP30 = Nouveau MSXML2.XMLHTTP30()
ou
MSXML2.XMLHTTP30 oXMLHttp = new MSXML2.XMLHTTP30();
oXMLHttp.open(....
oXMLHttp.setRequestHeader(...
oXMLHttp.send(..
javascript
xmlHttp.setRequestHeader("Referer", " http://URL");// ???Haha~fake~
JS n'est pas pris en charge ^_^
Le principe est que sock construit l'en-tête http pour envoyer les données. D'autres langages tels que Perl peuvent également être utilisés.
Actuellement, le moyen le plus simple de se défendre contre les faux référents est d'utiliser des codes de vérification (Session).
Il existe désormais certaines sociétés commerciales qui peuvent empêcher les logiciels de hotlinking, telles que UUDOG, linkgate, VirtualWall, etc., qui ont toutes développé des DLL à utiliser sur IIS.
Certains utilisent la vérification des cookies et le contrôle des threads, et certains peuvent générer de manière aléatoire des noms de fichiers, puis effectuer une réécriture d'URL. Certaines méthodes peuvent en effet donner de bons résultats.
Cependant, il existe toujours un moyen de déjouer ces astuces triviales.