<?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 => 'ru',
  ),
  'this' => 
  array (
    0 => 'security.apache.php',
    1 => 'Если PHP установлен как модуль Apache',
    2 => 'Если PHP установлен как модуль Apache',
  ),
  'up' => 
  array (
    0 => 'security.php',
    1 => 'Безопасность',
  ),
  'prev' => 
  array (
    0 => 'security.cgi-bin.shell.php',
    1 => 'Вариант 4: PHP вне дерева веб-документов',
  ),
  'next' => 
  array (
    0 => 'security.sessions.php',
    1 => 'Безопасность сессий',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ru',
    '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">Если PHP установлен как модуль Apache</h1>

   <p class="simpara">
    Если <abbr title="PHP: Hypertext Preprocessor">PHP</abbr> используется как модуль Apache, он
    наследует права пользователя, с которыми был запущен веб-сервер
    (обычно это пользователь &quot;nobody&quot;). Это влияет на обеспечение
    безопасности и реализацию авторизации. Например, если вы
    используете <abbr title="PHP: Hypertext Preprocessor">PHP</abbr> для доступа к базе данных,
    которая не имеет встроенного механизма разграничения доступа,
    вам придётся обеспечить доступ к БД для пользователя &#039;nobody&#039;.
    В таком случае вредоносный скрипт может получить доступ к базе
    данных и модифицировать её, даже не зная  логина и пароля.
    Вполне возможна ситуация, при которой веб-паук неверными запросами
    на страницу администратора базы данных может уничтожить все ваши
    базы данных. Вы можете избежать такой ситуации при помощи авторизации Apache
    или разработав собственную модель доступа, используя LDAP, файлы <var class="filename">.htaccess</var>  или
    любые другие технологии, внедряя соответствующий код в ваши
    <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>. Или, например, отсутствует
    возможность работать с базой данных. При этом система
    безопасности не позволяет записывать как &quot;хорошие&quot;, так и
    &quot;плохие&quot; файлы, или провести &quot;хорошие&quot; или &quot;плохие&quot; транзакции.
   </p>
   <p class="simpara">
    Распространённой ошибкой является запуск Apache с правами
    суперпользователя или любое другое расширение полномочий веб-сервера.
   </p>
   <p class="simpara">
    Расширение привилегий веб-сервера до полномочий суперпользователя
    угрожает работоспособности всей системы, поэтому такие команды,
    как 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>. Вы так же можете определить область
    доступа Apache, ограничив все действия, совершаемые из веба
    не пользовательскими или несистемными файлами.
   </p>
  </div>
<?php manual_footer($setup); ?>