Einzelnen Beitrag anzeigen
  #2  
Alt 19.06.2004, 09:33:04
Benutzerbild von yozek
yozek yozek ist offline
Junior Member
 
Registriert seit: May 2004
Ort: Köln
Alter: 43
Beiträge: 226
yozek eine Nachricht über ICQ schicken yozek eine Nachricht über MSN schicken
Open_Basedir ist ein Wert, der häufig als Alternative zum Safe_Mode genutzt wird. Es st hierbei möglich, ein bestimmtes Verzeichnis vorzugeben, innerhalb dessen sich die Kundenaktivitäten bewegen müssen - ausserhalb des Verzeichnisses kann der User nicht auf Dateien zugreifen

Häufig ist dabei nicht die Beschränkung als solche störend, sondern vielmehr ein falscher Zugriff. Die Beschränkung erfolgt "absolut", das heisst hier steht: "Zugriff auf /home/www/kunde/ ist beschränkt". Das heisst der Kunde darf nur im Verzeichnis /home/www/kunde/ arbeiten. Solange er nun mit "fopen("index.php")"; arbeitet, spielt das keine Rolle.

Das Problem tritt aber auf, wenn er (aus Versehen) einen absoluten Zugriff testet: "if(file_exists("/modules/index.html")" - das wird nicht klappen. Es wird versucht auf /modules zuzugreifen, das ist aber unterbunden. Stattdessen arbeitet aber die folgende Zeile mit einem relativen Zugriff: "if(file_exists("modules/index.html")"

Daher: Wenn dieser Fehler auftritt, wird er immer mit einer Zeilenangabe auftreten. Etwa "open_basedir restriction [...] in ...php row 23"; Dann in diesem Script zuerst nachsehen, ob evt. ein absoluter Zugriff vorliegt und diesen beheben.

Wer seine Einstellungen kontrollieren möchte, kann dies jederzeit mit phpinfo() tun. Hier in der Ausgabe einfach nach "open_basedir" suchen und nachsehen ob dort Verzeichnisse oder "no value" steht.

Als weitergehder Link empfiehlt sich die Seite
klick mich
Mit Zitat antworten