以下は php.ini の元の説明とデフォルト設定です: open_basedir を設定すると、すべてのファイル操作がディレクトリごとにまたは
ごとに使用されます。 - virtualhost Web サーバー設定ファイル。
open_basedir = は、セーフ モードがオンかオフかによって *影響を受けません。
open_basedir は、ファイルへのユーザー アクセスの範囲を、通常はホーム ディレクトリに制限します。パスは、現在のディレクトリを表す記号「.」で表すこともできます。 open_basedir で指定される制限は、実際にはディレクトリ名ではなくプレフィックスであることに注意してください。
例: 「open_basedir = /dir/user」の場合、ディレクトリ「/dir/user」と「/dir/user1」の両方に
アクセス可能です。したがって、指定したディレクトリのみへのアクセスを制限したい場合は、パス名の末尾にスラッシュを付けます。たとえば、次のように設定します。
"open_basedir = /dir/user/"
open_basedir では、Windows ではセミコロンを使用してディレクトリを区切ったり、
コロンを使用して他のシステムでディレクトリを区切ったりすることもできます。 Apache モジュールに適用すると、親ディレクトリの open_basedir パスが自動的に継承されます。
Apacheで指定したユーザーごとに独立した設定を行う方法は3つあります:
(a) Apacheのhttpd.confのディレクトリの対応する設定方法:
php_admin_value open_basedir /usr/local/apache/htdocs/
#複数の設定を参照できます
php_admin_value open_basedir /usr/local/apache/htdocs/:/tmp/
(b) Apache の httpd.conf の VirtualHost の対応する設定方法:
php_admin_value open_basedir /usr/local/apache/htdocs /
#複数のディレクトリを設定するには、以下を参照できます:
php_admin_value open_basedir /var/www/html/:/var/tmp/
(c) open_basedir が VirtualHost に設定された後、この仮想ユーザーは自動的に php を継承しなくなりますini
の open_basedir の値が設定されているため、柔軟な構成措置を実現することが困難になるため、VirtualHost
ではこの制限を設定しないことをお勧めします。たとえば、open_basedir = .:/tmp/ を設定できます。 php.ini、この設定は、
が現在のディレクトリ (つまり、PHP スクリプト ファイルが配置されているディレクトリ) と /tmp/ ディレクトリへのアクセスを許可されていることを示します。
注意: ファイルをアップロードするための一時ディレクトリが設定されている場合。 php.ini が /tmp/ である場合、open_basedir. /tmp/ を設定するときにこれを含める必要があります。そうしないと、PHP の新しいバージョンでは「open_basedir 制限が有効です」という警告メッセージが表示されますが、move_uploaded_file() 関数は失敗します。 /tmp/ ディレクトリにアップロードされたファイルは引き続き正常に削除できます。これが脆弱性であるかどうかはわかりません。
ShopEx472 バージョンの設定:
open_basedir = "D:/Server;../catalog; ../インクルード;../../ホーム;../システムサイト;../テンプレート;../ 言語;../../言語;../../../言語;../ ../../../言語"
上記では、ベースバンドのコンテンツを含む、ベースバンド PHP 構成ファイルの open_basedir オプションの役割を紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。