Webhosting » PHP    16.08.2016    0

Warum kann ich die PHP Funktion fopen() und include() nicht nutzen?

Sie können die Funktion fopen benutzen, diese ist aus Sicherheitsgründen standardmäßig jedoch deaktiviert.

Ursprünglich waren die Funktionen fopen, include etc. dazu gedacht, lokal existierende Dateien in PHP einzubinden bzw. zu öffnen. Im Laufe der Zeit wurde jedoch der Wunsch seitens der Programmierer groß, auch http:// und ftp:// Streams ohne größeren Aufwand verwenden zu können. Dies kann z.B. so aussehen

$hFile = fopen("http://www.anderedomain.de/test.html");

Dies alleine birgt noch kein Sicherheitsrisiko in sich. Viele unsauber programmierte Skripte aber übernehmen ungeprüfte Formulardaten direkt in den Aufruf von fopen, include etc., z.B.

include($cmd);

Das bedeutet, dass jeder beliebige Dritte Code an Ihre PHP-Skripte übergeben kann, indem er den Wert der Variable "cmd" geschickt wählt, und dass er damit Schaden in Ihrem Namen anrichten kann, der unter Ihre Verantwortung fällt.

Um Sie vor Schaden zu bewahren, haben wir standardmäßig die Verwendung von http:// und ftp:// Streams deaktiviert. Ein Aufruf der Befehle fopen und include führt bei Verwendung dieser Streams zu einem Fehler. Bei Verwendung lokaler Dateien funktionieren die Befehle selbstverständlich einwandfrei.


Sofern Sie auf die Streamingfunktionalität angewiesen sind, können Sie diese manuell für einzelne Skripte und/oder Verzeichnisse reaktivieren. Es gibt dazu zwei Möglichkeiten:

Möglichkeit 1

Erstellen Sie eine Textdatei namens .htaccess mit folgendem Eintrag
php_flag allow_url_fopen on

Laden Sie die Datei als Textdatei (wichtig in manchen FTP-Programmen) in das Verzeichnis, für das die Reaktivierung gelten soll. Diese Einstellung gilt sowohl für das Verzeichnis, in dem sich die .htaccess Datei selbst befindet, als auch für alle Unterverzeichnisse!


Möglichkeit 2

Sie können die Streamingfunktionalität in jedem PHP-Skript jederzeit über den Befehl
ini_set("allow_url_fopen", "1");

aktivieren und über
ini_set("allow_url_fopen", "0");

wieder deaktivieren.

Wichtig: Sie als Betreiber Ihrer Internetseite sind für alles, was durch Sie direkt oder durch die von Ihnen eingesetzten Systeme oder Skripte verursacht wird, verantwortlich, auch wenn dies durch Dritte und/oder ohne Ihr Wissen geschieht. Die Verwendung (Aktivierung) der Streamingfunktionalität ist ein hohes Sicherheitsrisiko. Sofern Sie diese reaktivieren, auch nur teilweise, übernehmen Sie die volle Verantwortung für alle dadurch entstehenden Schäden und Folgeschäden. Sofern Sie sich der Höhe und des Umfangs des Risikos nicht bewusst sind, lassen Sie die Funktionalität bitte deaktiviert und konsultieren Sie unseren technischen Support.




Bitte haben Sie Verständnis dafür, dass FAQ-Beiträge nicht rechtlich bindend und somit nicht Vertragsbestandteil sind. Im Zweifelsfall gelten die Regelungen der AGB, der Leistungsbeschreibung(en) sowie der Details zum Produkt auf dieser Webseite.