著者: 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 ;このように、$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 その章。