LinuxでPHPがルートディレクトリの上位ディレクトリにあるファイルにアクセスできない問題の解決方法

WBOY
リリース: 2016-06-20 13:03:27
オリジナル
4621 人が閲覧しました

Linux システムにランプがインストールされている Web サイトを実行すると、www.xxx.com/index.php の include() 呼び出しはルート ディレクトリの上位レベルにある PHP ファイルを参照できず、参照できるのはルートディレクトリにあるPHPファイルを参照します。
もともとWindowsシステムは正常に動作していましたが、Linuxに切り替えた後、このような問題が発生しました。これはLinuxのシステム設定の問題ですか、それともNginxの設定の問題ですか?

その理由は次のとおりです:

php_admin_value open_basedir /usr/www/web1:/tmp:/proc

ログイン後にコピー


apacheやnginxではphp_admin_valueの値が設定されており、セキュリティディレクトリは特定のディレクトリに設定されているため、ルートディレクトリの1つ上のファイルにはアクセスできません。 php_admin_value open_basedir の値を、ファイルがアクセスできるディレクトリに設定するだけです

Open_basedir の使用法の概要:

open_basedir の影響範囲は、セキュリティ保護をある程度強化する fopen、require、include などの関数です。

ただし、open_basedir にも制限があります。exec や system などのシステム コマンドを実行する関数には影響しません。ホスト上の別のクラスメートのファイル (コンテンツ) を盗みたい場合は、必ずしも require include を使用する必要はありません。ここに来るか、ハックを仕掛けるか、直接 system('cat /path/to/file') する方が簡単ではないでしょうか?

システム関数は正当な目的で使用される場合があります。これを直接無効にするのは得策ではありません。これはユーザー自身の $HOME です。open_basedir についてはどうでしょうか。 、 exec 、 dl を無効にする必要はありません。これが安全性と利便性の最良の組み合わせだと思います。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート