Ist es möglich, ein serverseitiges Include zu verwenden, um auf Dateien zuzugreifen, die sich außerhalb des Servers befinden?
Wenn nicht, welche anderen Möglichkeiten gibt es dafür?
Ist es möglich, ein serverseitiges Include zu verwenden, um auf Dateien zuzugreifen, die sich außerhalb des Servers befinden?
Wenn nicht, welche anderen Möglichkeiten gibt es dafür?
Verwenden Sie cURL um Daten außerhalb der Domäne zu erhalten. Wenn Sie die erhaltenen Daten anschließend ausführen möchten, können Sie eval()
es. Aber seien Sie gewarnt, dass Sie damit die "Ausgabe" der Seite erhalten. Das heißt, wenn es sich um eine ausgeführte Seite wie eine ".php"-Seite handelt, erhalten Sie die Daten, die als Ergebnis der Verarbeitung herauskommen.
<?php
// create a new cURL resource
$ch = curl_init();
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);
// grab URL and pass it to the browser
curl_exec($ch);
// close cURL resource, and free up system resources
curl_close($ch);
?>
Das Gleiche gilt für file_get_contents()
であり、また fopen()
Wenn Sie den "tatsächlichen" Inhalt der Datei abrufen wollten, müssten Sie auf dem anderen Server eine Art Proxy einrichten. (Sie können dies nicht auf Ihrem Server tun, da dies eine Sicherheitslücke in der Funktionsweise der serverseitigen Skripterstellung darstellen würde).
<?php
// Read the requested file out
readfile($_GET['file']);
So erhalten Sie den Inhalt jeder Datei, die Sie anfordern:
http://test.com/handler.php?file=handler.php
Aber wenn jemand anderes es findet, könnte es gefährlich werden.
Sie erwähnen die Serversoftware nicht, aber ich nehme an, dass Apache, wo SSI von der mod_include Modul. Die Website einschließen. Element lässt keine entfernten Dateien zu. Sie haben jedoch Ausführung die es ermöglicht, ein beliebiges externes Tool auszuführen; Sie können damit die wget oder einen anderen Befehl Ihrer Wahl.
Vielleicht ist es aber auch gar nicht so kompliziert. Wenn Sie das entfernte Verzeichnis im lokalen System mounten können, können Sie einen einfachen Symlink erstellen und ein reguläres einschließen. .
Oder, wie bereits angedeutet, PHP ist wirklich einfach zu bedienen.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.