Beh, ovviamente c'è un modo per falsificare un riferimento. Quanto sarà utile è qualcosa che tu decida :)
Poiché il referente proviene dal client del browser Web, dovremo creare il nostro "client PHP WWW" ... fondamentalmente un proxy.
Ecco un codice che false tutte le informazioni che ci sono:
<?php
// Setup Information
$host = "www.yoursite.com";
$page = "/index.html";
// Open the socket
$fp = fsockopen($host,80,$errno,$errstr,30) or die("Could not establish a connection. $errstr($errno)");
// Request the page
fputs($fp,"GET $page HTTP/1.0\r\n");
fputs($fp,"User-agent: PHP WWW Client\r\n");
fputs($fp,"Referer: http://www.anothersite.net\r\n");
fputs($fp,"\r\n");
// Read response
while (!feof($fp)) {
$page .= fgets ($fp,128);
}
// Close Socket
fclose($fp);
?>
$page
Conterrà ora il contenuto HTML della pagina che hai appena ricevuto dal server.
Per quanto riguarda quello che ci fai dopo, dipende da te :) Probabilmente dovrai formattare eventuali URL nel codice in modo che funzionino dal tuo dominio. Quindi stampare il codice HTML.
In generale, fare questo non è davvero una buona idea, ma questo è l'unico modo in cui sono a conoscenza di "falsificare" il referente e l'agente dell'utente.