Frage

Ich habe ein Skript, das sich auf einen Link leitet wie

header("Location:http://foo.com/abc.xyz");

aber ich möchte entweder das setzen HTTP_REFERRER sein http://foo.com oder blank so dass die Seite http://foo.com Kann nicht verfolgen, dass die Referenz von einer anderen Domäne gesendet wurde, in der das Skript installiert ist.

War es hilfreich?

Lösung

Natürlich gibt es eine Möglichkeit, einen Referatoren zu fälschen. Wie nützlich ist es etwas, das Sie entscheiden müssen :)

Da der Referator vom Webbrowser -Client stammt, müssen wir unseren eigenen "PHP WWW -Client" erstellen ... im Grunde genommen ein Proxy.

Hier ist ein Code, der alle Informationen erfüllt, die vorhanden sind:

<?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 Enthält nun den HTML -Inhalt der Seite, die Sie gerade vom Server erhalten haben.

Was Sie als nächstes damit machen, liegt bei Ihnen :) Sie müssen wahrscheinlich alle URLs im Code formatieren, damit sie von Ihrer Domain aus arbeiten. Drucken Sie dann den HTML -Code aus.

Im Allgemeinen ist dies nicht wirklich eine gute Idee, aber dies ist der einzige Weg, den ich weiß, um den Referator und den Benutzeragenten zu "fälschen".

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top