file_get_contents refer?

chris4712

Erfahrenes Mitglied
Moin!

Ich habe auf einem Server in einer PHP Update Datei folgende Zeile stehen:
PHP:
$ServerVersion = file_get_contents("https://server.de/version.php") or die ('ERROR');

In der Datei version.php auf server.de möchte ich gerne wissen von wo aus die Datei version.php aufgerufen wurde.
Jedoch gibt mir z.B. $_SERVER["HTTP_REFERER"]; nix zurück.

Wie bekomme ich die aufrufende Seite raus?
Danke und Grüße!
 
Hi,

der Referer wird nur vom Browser gesetzt, wobei man auf das auch nicht 100% vertrauen kann. Man kann diesen relativ leicht fälschen, leeren oder sonstiges mit dem anstellen.
Das einzige vernüftige Kriterium, wie du den Aufrufer identifizieren kannst, ist per IP-Addresse (ich glaube REMOTE_ADDR).

Wenn die IP Adresse richtig aufgesetzt ist und nur für eine Webseite verwendet wird, kannst du per Reverse-Lookup dann den Hostnamen / die Webseite rausfinden.

Grüsse,
BK
 
Hey!

Zuerst einmal danke für deine Antwort!
und nur für eine Webseite verwendet wird
Hier wird es nun schwierig: Es sind im Moment verschiedene Subdomains die das Update verwenden sollen.
Logischerweise haben sie alle die gleiche IP Adresse.

Gibt es eine andere Möglichkeit den Ursprung mit anzugeben? Habe es schon mit
PHP:
$ServerVersion = file_get_contents("https://server.de/version.php?Refer=client.de") or die ('ERROR');
erfolglos versucht :-(

Grüße!
 
Gibt es eine andere Möglichkeit den Ursprung mit anzugeben? Habe es schon mit
PHP:
$ServerVersion = file_get_contents("https://server.de/version.php?Refer=client.de") or die ('ERROR');
erfolglos versucht :(

Wieso sollte das nicht funktionieren?
Das Script version.php sollte damit die Variable $_GET['Refer'] gesetzt haben mit dem String 'client.de'.

Das kannst du dir dann auch loggen zb.

PHP:
if (isset($_GET['Refer']))
    {
        $refer = trim($_GET['Refer']) .PHP_EOL ;
        file_put_contents('refer.log', $refer ,FILE_APPEND);
    }
 

Neue Beiträge

Zurück