ホームページ >バックエンド開発 >PHPチュートリアル >PHP環境の強化(移行)_PHPチュートリアル

PHP環境の強化(移行)_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 16:58:09846ブラウズ

著者: Albert
PHP が Apache のモジュールとして実行される場合、Apache 自体のセキュリティが主導的な役割を果たします。そのため、正しく設定されていれば、PHP は非常に安全な環境になります。ただし、PHP が CGI モードで実行される場合は、安全な環境になります。それほど安全ではありません。
この記事で説明されている操作は、Unix と Windows の両方に適用できます。
1. Apacheモジュールとして実行する
一般的に言えば、Apacheは「nobody」または「www」として実行されるため、モジュールとしてのPHPは非常に安全です。
PHPが仮想ホスト環境にある場合、他のユーザーのファイルを閲覧できる危険性があります。簡単なスクリプトは次のとおりです。

// ドキュメントルートは /usr/local/websites/mydomain にあるとします
$location = ../ // 上のディレクトリに移動します
$parent = dir($location; );
// 現在のディレクトリを表示します: /usr/local/websites
while($entry = $parent->read()) {
echo $entry .
}
$parent->close() ;
?>
このように、$location が変更されている限り、ユーザーは仮想ホスト上の他のすべてのユーザーのファイルを参照できます。このような危険を軽減するには、php.ini を確認し、safe_mode、doc_root、usr_dir パラメータを変更して、ユーザーを自分の仮想ホスト環境に制限する必要があります:
safe_mode = On
doc_root = /usr/local/apache / htdocs
user_dir = /home/albertxu/htdocs
2. CGI として
PHP を CGI として実行する場合は、他人に知られたくない情報が漏洩する可能性があるため、十分に注意する必要があります。
最初に注意すべきことは、実行可能ファイルをドキュメントのルート ディレクトリ以外の場所に配置する必要があるということです。たとえば、/usr/local/bin なので、すべての CGI ファイルは次で始まる必要があります:
#!/usr/local/bin/php
ユーザーが CGI を直接呼び出すのを防ぐ方法は、Apache で CGI リダイレクトを強制することです:
Action php - script /cgi-bin/php.cgi
AddHandler php-script .php
これにより、次の URL
http://example.com/mywebdir/test.htm

http://example.com/ に変換されます。 cgi-bin/php/mywebdir/test.htm
CGI モードで PHP をコンパイルするときは、次のオプションを使用するのが最善です:
--enable-force-cgi-redirect
この記事では、PHP に関連するセキュリティ問題について詳しく説明します。セキュリティ情報については、PHP マニュアル http://www.php.net/manual/en/security.php のセキュリティに関する章を参照してください。





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

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/631458.html技術記事著者: Albert PHP が Apache のモジュールとして実行される場合、Apache 自体のセキュリティが主導的な役割を果たすため、正しく設定されていれば PHP は非常に安全な環境になるはずですが、PHP が...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。