PHP が Apache モジュールとして使用された場合、PHP は、Apache ユー ザーの許可属性(通常はユーザー "nobody" の許可属性)を継承します。 これは、セキュリティと認証に数々の影響を与えます。例えば、データベー スと接続するためにPHPを使用している場合、データベースが組込みのア クセス制御機能を有していない限り、そのデータベースを "nobody"ユー ザからアクセス可能とする必要が生じます。これは、悪意のあるスクリプ トが、ユーザ名とパスワードなしにデータベースにアクセスし、修正する ことができることを意味します。Webスパイダがデータベース管理用Webペー ジを回って、データベースを全て削除することも可能です。Apache認証に よりこの攻撃に対して防衛することが可能であり、また、LDAPや .htaccessファイル等を使用して固有のアクセスモデルを設計し、PHPスク リプトの一部としてそのコードをインクルードすることも可能です。
しばしば、PHPユーザ(この場合はApacheユーザ)が非常に小さなリスクを 有する場所に一度セキュリティが確立されると、PHPはユーザディレクト リにウイルスファイルを書き込んだりすることができなくなります。もし くは、非公開のデータベースにアクセスしたり変更したりといったことが 出来なくなります。この場合、ファイルの書き込みやデータベーストラン ザクションに関して等しく安全性が確保されていると言えます。
この観点からしばしば行われるセキュリティ上の失敗としてApacheにルー ト権限を与えるというものがあります。
Apacheユーザの権限をルートに昇格させることは非常に危険であり、シ ステム全体を危険にさらす可能性があります。よって、sudoやchrootの実 行、ルート権限で実行を行う他の手段は、セキュリティに精通した人以外 は、考慮するべきではありません。