Heim  >  Artikel  >  Backend-Entwicklung  >  Die PHP-Datei enthält die Verzeichniskonfiguration open_basedir, eine Nutzungs- und Leistungsanalyse

Die PHP-Datei enthält die Verzeichniskonfiguration open_basedir, eine Nutzungs- und Leistungsanalyse

jacklove
jackloveOriginal
2018-06-19 09:35:241512Durchsuche

1. Einführung in open_basedir

open_basedir Beschränken Sie die Dateien, die von PHP geöffnet werden können, auf den angegebenen Verzeichnisbaum, einschließlich der Datei selbst. Wenn ein Programm eine Datei beispielsweise mit fopen() oder file_get_contents() öffnen möchte, wird der Speicherort der Datei überprüft. Wenn sich die Datei außerhalb des angegebenen Verzeichnisbaums befindet, weigert sich das Programm, sie zu öffnen.

Dieser Befehl wird durch das Ein- oder Ausschalten des abgesicherten Modus nicht beeinflusst.

2. open_basedir-Einstellungsmethode

1. Im Programm hinzufügen

open_basedir="指定目录"

wird in

verwendet, aber diese Methode wird nicht empfohlen

3. Verzeichniskonfiguration in Apaches httpd.conf

ini_set('open_basedir', '指定目录');

VritualHost in httpd.conf

php_admin_value open_basedir "指定目录"

4.nginx fastcgi.conf

php_admin_value open_basedir "指定目录"
Das mit open_basedir angegebene Limit ist eigentlich ein Präfix, kein Verzeichnisname.

Das heißt, open_basedir=/home/fdipzone ermöglicht auch den Zugriff auf /home/fdipzone_abc. Wenn Sie den Zugriff auf ein Verzeichnis beschränken möchten, verwenden Sie bitte einen Schrägstrich, um den Pfadnamen zu beenden, zum Beispiel: open_basedir=“ /home/fdipzone/“

Wenn Sie mehrere Verzeichnisse einrichten möchten, verwendet Windows; zum Trennen von Verzeichnissen und Linux verwendet: zum Trennen von Verzeichnissen.

3. Verwenden Sie open_basedir, um den Verzeichniszugriff einzuschränken

Erstellen Sie zunächst einen VirtualHost,

Setzen Sie open_basedir auf /home/fdipzone/sites/in.fdipzone.com/

fastcgi_param PHP_VALUE "open_basedir=指定目录"
Erstellen Sie eine test.txt-Datei im oberen Verzeichnis /home/fdipzone/sites/, erstellen Sie PHP in in.fdipzone.com und führen Sie den folgenden Code aus

<VirtualHost *:80>
    ServerAdmin webmaster@localhost    DocumentRoot /home/fdipzone/sites/in.fdipzone.com    ServerName in.fdipzone.com    php_admin_value open_basedir "/home/fdipzone/sites/in.fdipzone.com/"
    <Directory "/home/fdipzone/sites/in.fdipzone.com">
        allow from all Options + Indexes    </Directory></VirtualHost>

Weil test.txt ist nicht innerhalb des eingeschränkten Verzeichnisbereichs vorhanden, daher gibt PHP eine Warnung aus


Warnung: file_get_contents(): open_basedir Einschränkung in Kraft Datei(../test.txt) liegt nicht innerhalb der zulässigen Pfade: ( /home/ fdipzone/sites/in.fdipzone.com/) in /home/fdipzone/sites/in.fdipzone.com/index.php in Zeile 3

4 der Einstellung von open_basedir

Nachdem open_basedir aktiviert wurde, wirkt es sich auf E/A aus, da jede aufgerufene Datei feststellen muss, ob sie sich im eingeschränkten Verzeichnis befindet.

Programm testen, dieselbe Datei im eingeschränkten Verzeichnis 10.000 Mal lesen

<?phpecho file_get_contents(&#39;../test.txt&#39;);?>

Open_basedir-Test schließen Laufzeit
137,237072 ms

Open_basedir-Test öffnen Laufzeit
404,207945 ms

Nach dem Öffnen von open_basedir wird die Ausführungszeit geschlossen 3 mal.


Zusammenfassung: Die Verwendung von open_basedir kann die Verzeichnisse und Dateien einschränken, die das Programm bedienen kann, und die Systemsicherheit verbessern. Dies beeinträchtigt jedoch die E/A-Leistung und führt zu einer Verlangsamung der Systemausführung. Daher ist es notwendig, Sicherheit und Leistung entsprechend den spezifischen Anforderungen abzuwägen.

In diesem Artikel wird die Verwendung und Leistungsanalyse von open_basedir erläutert, einer PHP-Datei mit der Verzeichniskonfiguration. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

php-Datei enthält Verzeichniskonfiguration, open_basedir-Nutzung und Leistungsanalyse

Linux verwendet den Befehl pwgen, um zufällige Passwörter zu erstellen

PHP verwendet Regular, um Breiten- und Höhenstile zu entfernen

Das obige ist der detaillierte Inhalt vonDie PHP-Datei enthält die Verzeichniskonfiguration open_basedir, eine Nutzungs- und Leistungsanalyse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn