<?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 => 'es',
  ),
  'this' => 
  array (
    0 => 'security.apache.php',
    1 => 'Instalado como m&oacute;dulo de Apache',
    2 => 'Instalado como m&oacute;dulo de Apache',
  ),
  'up' => 
  array (
    0 => 'security.php',
    1 => 'Seguridad',
  ),
  'prev' => 
  array (
    0 => 'security.cgi-bin.shell.php',
    1 => 'Caso 4: El analizador de PHP fuera del &aacute;rbol de la web',
  ),
  'next' => 
  array (
    0 => 'security.sessions.php',
    1 => 'Seguridad de una Sesi&oacute;n',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    '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">Instalado como módulo de Apache</h1>

   <p class="simpara">
    Cuando <abbr title="PHP: Hypertext Preprocessor">PHP</abbr> es usado como un módulo de Apache, hereda los
    permisos del usuario de Apache (generalmente los del usuario
    &quot;nobody&quot;). Este hecho representa varios impactos sobre la
    seguridad y las autorizaciones. Por ejemplo, si se está usando
    <abbr title="PHP: Hypertext Preprocessor">PHP</abbr> para acceder a una base de datos, a menos que tal base de
    datos disponga de un control de acceso propio, se tendrá
    que hacer que la base de datos sea asequible por el usuario
    &quot;nobody&quot;.  Esto quiere decir que un script malicioso podría
    tener acceso y modificar la base de datos, incluso sin un nombre
    de usuario y contraseña. Es completamente posible que una
    araña web (bot) pudiera toparse con la página web de administración de
    una base de datos, y eliminar todo de la base de datos. Una
    protección ante este tipo de situaciones es mediante el uso del
    mecanismo de autorización de Apache, o con modelos de acceso
    de diseño propio usando LDAP, archivos <var class="filename">.htaccess</var>, etc. e
    incluir ese código como parte de los scripts <abbr title="PHP: Hypertext Preprocessor">PHP</abbr>.
   </p>
   <p class="simpara">
    Con frecuencia, una vez la seguridad se ha establecido en un punto
    en donde el usuario de <abbr title="PHP: Hypertext Preprocessor">PHP</abbr> (en este caso, el usuario de apache)
    tiene asociada muy poco riesgo, se descubre que
    <abbr title="PHP: Hypertext Preprocessor">PHP</abbr> se encuentra ahora imposibilitado de escribir archivos en los
    directorios de los usuarios. O quizás se le haya
    desprovisto de la capacidad de acceder o modificar bases de
    datos. Se ha prevenido  que pudiera escribir tanto
    archivos buenos como malos, o que pudiera realizar transacciones
    buenas o malas en la base de datos.
   </p>
   <p class="simpara">
    Un error de seguridad cometido con frecuencia en este punto es
    darle permisos de administrador (root) a apache, o incrementar las
    habilidades del usuario de apache de alguna otra forma.
   </p>
   <p class="simpara">
    Incrementar los permisos del usuario de Apache hasta el nivel de
    administrador es extremadamente peligroso y puede comprometer al
    sistema entero, así que el uso de entornos sudo, chroot, o
    cualquier otro mecanismo que sea ejecutado como root no
    debería ser considerado como una opción por aquellos que no
    son profesionales en seguridad.
   </p>
   <p class="simpara">
    Existen otras soluciones más simples. Mediante el uso
    de <a href="ini.core.php#ini.open-basedir" class="link">open_basedir</a> se
    puede controlar y restringir qué directorios
    pueden ser usados por <abbr title="PHP: Hypertext Preprocessor">PHP</abbr>. También se pueden definir
    áreas solo-Apache, para restringir todas las actividades
    basadas en web a archivos que no son de usuarios o del sistema.
   </p>
  </div>
<?php manual_footer($setup); ?>