ホームページ  >  記事  >  バックエンド開発  >  php open_basedirのセキュリティと使い方の詳しい説明_PHPチュートリアル

php open_basedirのセキュリティと使い方の詳しい説明_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:47:481424ブラウズ

open_basedir の機能はディレクトリの場所を指定することです。これは、PHP が開くことができるファイルを、ファイル自体を含む指定されたディレクトリ ツリーに制限することを意味し、セーフ モードかどうかには影響されません。


以下は、php.ini の元の説明とデフォルト設定です:
; open_basedir を設定すると、すべてのファイル操作が定義されたディレクトリに制限されます
; 以下のディレクティブは、ディレクトリごとまたは
で使用する場合に最も意味があります。 ; 仮想ホストごとの 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のDirectoryの対応設定方法:


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 を自動的に継承しなくなります

VirtualHostのopen_basedirの値が設定されていると、柔軟な設定対応が難しくなるため、VirtualHostには設定しないことを推奨します
この制限は php.ini で設定します。たとえば、php.ini で open_basedir = .:/tmp/ を設定できます。この設定は許可されることを意味します。 現在のディレクトリ (つまり、PHP スクリプト ファイルが配置されているディレクトリ) と /tmp/ ディレクトリにアクセスします。


注意: php.ini で設定されたファイルをアップロードするための一時ディレクトリが /tmp/ の場合、open_basedir を設定する必要があります

/tmp/ を含めないと、アップロードは失敗します。新しいバージョンの php では、「open_basedir 制限が有効です」というメッセージが表示されます

警告メッセージですが、move_uploaded_file() 関数は /tmp/ ディレクトリにアップロードされたファイルを正常に削除できるかどうかはわかりません
これはバグですか、それとも新機能ですか。


http://www.bkjia.com/PHPjc/632827.html

www.bkjia.com本当http://www.bkjia.com/PHPjc/632827.html技術記事 open_basedir の機能はディレクトリの場所を指定することです。これは、PHP が開くことができるファイルを、ファイル自体を含む指定されたディレクトリ ツリーに制限することを意味し、セーフ モードかどうかには影響されません。 ...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。