<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/security.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ja',
  ),
  'this' => 
  array (
    0 => 'security.apache.php',
    1 => 'Apache モジュールとしてインストール',
    2 => 'Apache モジュールとしてインストール',
  ),
  'up' => 
  array (
    0 => 'security.php',
    1 => 'セキュリティ',
  ),
  'prev' => 
  array (
    0 => 'security.cgi-bin.shell.php',
    1 => 'ケース 4: Webツリーの外にPHPパーサーを置く',
  ),
  'next' => 
  array (
    0 => 'security.sessions.php',
    1 => 'セッションのセキュリティ',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ja',
    'path' => 'security/apache.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="security.apache" class="chapter">
   <h1 class="title">Apache モジュールとしてインストール</h1>

   <p class="simpara">
    <abbr title="PHP: Hypertext Preprocessor">PHP</abbr> が Apache モジュールとして使用された場合、<abbr title="PHP: Hypertext Preprocessor">PHP</abbr> は、Apache ユー
    ザーの許可属性(通常はユーザー &quot;nobody&quot; の許可属性)を継承します。
    これは、セキュリティと認証に数々の影響を与えます。例えば、データベー
    スと接続するために<abbr title="PHP: Hypertext Preprocessor">PHP</abbr>を使用している場合、データベースが組込みのア
    クセス制御機能を有していない限り、そのデータベースを &quot;nobody&quot;ユー
    ザからアクセス可能とする必要が生じます。これは、悪意のあるスクリプ
    トが、ユーザー名とパスワードなしにデータベースにアクセスし、修正する
    ことができることを意味します。Webスパイダがデータベース管理用Webペー
    ジを回って、データベースを全て削除することも可能です。Apache認証に
    よりこの攻撃に対して防衛することが可能であり、また、LDAPや
    .htaccessファイル等を使用して固有のアクセスモデルを設計し、<abbr title="PHP: Hypertext Preprocessor">PHP</abbr>スク
    リプトの一部としてそのコードを読み込むことも可能です。
   </p>
   <p class="simpara">
    しばしば、<abbr title="PHP: Hypertext Preprocessor">PHP</abbr>ユーザー(この場合はApacheユーザー)が非常に小さなリスクを
    有する場所に一度セキュリティが確立されると、<abbr title="PHP: Hypertext Preprocessor">PHP</abbr>はユーザーディレクト
    リにウイルスファイルを書き込んだりすることができなくなります。もし
    くは、データベースにアクセスしたり変更したりといったことが出来なく
    なります。この場合、良いファイルおよび悪いファイルの書き込み、また
    は、良いデータベーストランザクションと悪いデータベーストランザクシ
    ョンに関して等しく安全性が確保されていると言えます。
   </p>
   <p class="simpara">
    この観点からしばしば行われるセキュリティ上の失敗としてApacheにルー
    ト権限を与えたり、他の何らかの手段でApacheの権限を昇格させるという
    ものがあります。
   </p>
   <p class="simpara">
    Apacheユーザーの権限をルートに昇格させることは非常に危険であり、シ
    ステム全体を危険にさらす可能性があります。よって、sudoやchrootの実
    行、ルート権限で実行を行う他の手段は、セキュリティに精通した人以外
    は、考慮するべきではありません。
   </p>
   <p class="simpara">
    いくつかのより簡単な解決策があります。<a href="ini.core.php#ini.open-basedir" class="link">open_basedir</a> を使用することによ
    り、<abbr title="PHP: Hypertext Preprocessor">PHP</abbr>に使用を許可するディレクトリを制御したり制限したりすること
    が可能です。また、全てのWebベースの作業をユーザーファイル、システム
    ファイル以外のファイルに制限するために、Apache専用エリアを設定する
    ことも可能です。
   </p>
  </div>
<?php manual_footer($setup); ?>