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 = オン
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リダイレクト:
アクション 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