Open basedir: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
Zeile 1: Zeile 1:
{{DISPLAYTITLE:open_basedir}}
'''open_basedir''' - Begrenzt die Dateien, auf die von PHP zugegriffen werden kann
'''open_basedir''' - Begrenzt die Dateien, auf die von PHP zugegriffen werden kann


== Beschreibung ==
; <code>open_basedir</code> ''string''
; <code>open_basedir</code> ''string''


Zeile 23: Zeile 22:
* Das heißt, wenn open_basedir laut <var>php.ini</var> auf <code>/www/</code> gesetzt ist, kann die Direktive zur Laufzeit mit ini_set() beispielsweise weiter auf <code>/www/tmp/</code> begrenzt werden.  
* Das heißt, wenn open_basedir laut <var>php.ini</var> auf <code>/www/</code> gesetzt ist, kann die Direktive zur Laufzeit mit ini_set() beispielsweise weiter auf <code>/www/tmp/</code> begrenzt werden.  
* Wenn mehrere Verzeichnisse aufgelistet werden, kann die Konstante '''<code>PATH_SEPARATOR</code>''' unabhängig vom Betriebssystem als Trennzeichen verwendet werden.</blockquote><blockquote>'''Hinweis''': Die Verwendung von open_basedir setzt realpath_cache_size auf <code>0</code> und ''deaktiviert'' somit den realpath-Cache.</blockquote>'''Achtung''' <code>open_basedir</code> ist nur ein zusätzliches Sicherheitsnetz, das in keiner Weise umfassend ist und daher nicht als verlässlich angesehen werden kann, wenn Sicherheit erforderlich ist.
* Wenn mehrere Verzeichnisse aufgelistet werden, kann die Konstante '''<code>PATH_SEPARATOR</code>''' unabhängig vom Betriebssystem als Trennzeichen verwendet werden.</blockquote><blockquote>'''Hinweis''': Die Verwendung von open_basedir setzt realpath_cache_size auf <code>0</code> und ''deaktiviert'' somit den realpath-Cache.</blockquote>'''Achtung''' <code>open_basedir</code> ist nur ein zusätzliches Sicherheitsnetz, das in keiner Weise umfassend ist und daher nicht als verlässlich angesehen werden kann, wenn Sicherheit erforderlich ist.
<noinclude>
== Anhang ==
=== Siehe auch ===
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
==== Links ====
===== Weblinks =====


[[Kategorie:PHP]]
[[Kategorie:PHP]]
{{DEFAULTSORT:open_basedir}}
{{DEFAULTSORT:open_basedir}}
{{DISPLAYTITLE:open_basedir}}
</noinclude>

Aktuelle Version vom 17. April 2024, 13:39 Uhr

open_basedir - Begrenzt die Dateien, auf die von PHP zugegriffen werden kann

Beschreibung

open_basedir string

Begrenzt die Dateien, auf die von PHP zugegriffen werden kann

  • Ordner inklusive Unterordner

Wenn ein Skript versucht, auf eine Datei zuzugreifen, zum Beispiel mit include oder fopen(), wird der Ort der Datei geprüft.

  • Wenn die Datei nicht im Verzeichnisbaum liegt, der in open_basedir angegeben ist, wird PHP nicht auf die Datei zugreifen.
  • Alle symbolischen Verknüpfungen werden aufgelöst, sodass es nicht möglich ist, diese Beschränkung mit einem Symlink zu umgehen.
  • Wenn die Datei nicht existiert, kann die Verknüpfung nicht aufgelöst werden und der Dateiname wird mit (einem aufgelösten) open_basedir verglichen. open_basedir kann sich auf mehr als nur Dateisystemfunktionen auswirken.
  • Wenn zum Beispiel MySQL so konfiguriert ist, dass es den mysqlnd-Treiber verwendet, wird LOAD DATA INFILE von open_basedir beeinflusst.
  • Ein Großteil der erweiterten Funktionalität von PHP verwendet open_basedir auf diese Weise.
  • Der spezielle Wert . gibt an, dass das Arbeitsverzeichnis des Skriptes als Basis-Verzeichnis verwendet wird.
  • Dies ist gefährlich, da das Arbeitsverzeichnis mit chdir() einfach geändert werden kann.
  • In der Konfigurationsdatei httpd.conf kann open_basedir genau wie jede andere Direktive mit "php_admin_value open_basedir none" geändert oder deaktiviert werden (z.  B. für einige virtuelle Hosts).
  • Unter Windows müssen die Verzeichnisse mit einem Semikolon getrennt werden, auf allen anderen Systemen mit einem Doppelpunkt.
  • Wenn PHP als Apache-Modul läuft, erbt open_basedir seinen Pfad nun automatisch von übergeordneten Verzeichnissen.
  • Die mit open_basedir angegebene Einschränkung ist ein Verzeichnisname, kein Präfix.
  • Standardmäßig dürfen alle Dateien geöffnet werden.

    Hinweis: open_basedir kann zur Laufzeit weiter eingeschränkt werden.

  • Das heißt, wenn open_basedir laut php.ini auf /www/ gesetzt ist, kann die Direktive zur Laufzeit mit ini_set() beispielsweise weiter auf /www/tmp/ begrenzt werden.
  • Wenn mehrere Verzeichnisse aufgelistet werden, kann die Konstante PATH_SEPARATOR unabhängig vom Betriebssystem als Trennzeichen verwendet werden.

    Hinweis: Die Verwendung von open_basedir setzt realpath_cache_size auf 0 und deaktiviert somit den realpath-Cache.

    Achtung open_basedir ist nur ein zusätzliches Sicherheitsnetz, das in keiner Weise umfassend ist und daher nicht als verlässlich angesehen werden kann, wenn Sicherheit erforderlich ist.


Anhang

Siehe auch

Links

Weblinks