<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/security.cgi-bin.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'security.cgi-bin.doc-root.php',
    1 => 'Caso 3: Configurando doc_root o user_dir',
    2 => 'Caso 3: Configurando doc_root o user_dir',
  ),
  'up' => 
  array (
    0 => 'security.cgi-bin.php',
    1 => 'Instalado como CGI binario',
  ),
  'prev' => 
  array (
    0 => 'security.cgi-bin.force-redirect.php',
    1 => 'Caso 2: utilizando cgi.force_redirect',
  ),
  'next' => 
  array (
    0 => 'security.cgi-bin.shell.php',
    1 => 'Caso 4: El analizador de PHP fuera del &aacute;rbol de la web',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'security/cgi-bin.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="security.cgi-bin.doc-root" class="sect1">
    <h2 class="title">Caso 3: Configurando doc_root o user_dir</h2>
    <p class="simpara">
     Para incluir contenido activo, como scripts y ejecutables, en los
     directorios de documentos del servidor web es algunas veces considerado una práctica
     insegura. Si, por el hecho del algún error de configuración, los scripts
     no se ejecutan y son mostrados como documentos HTML regulares, esto
     podría resultar en una fuga de información de propiedad intelectual
     o de información de seguridad como las contraseñas. Por lo tanto muchos Administradores de Sistemas
     preferirán configurar otra estructura de directorios para scripts que sean
     accesibles solamente a través del CGI de PHP, y por lo tanto siempre interpretado y no desplegado como tal.
    </p>
    <p class="simpara">
     También si el método para asegurar las peticiones no es
     redirigido, como se describió en la sección anterior, no está
     disponible, es necesario configurar un script <a href="ini.core.php#ini.doc-root" class="link">doc_root</a> que sea
     diferente de la raíz del documento web.
    </p>
    <p class="simpara">
     Usted puede configurar el script de la raíz de documento de PHP en la directiva
     de configuración <a href="ini.core.php#ini.doc-root" class="link">doc_root</a> en el
     <a href="configuration.file.php" class="link">fichero de configuración</a>, o
     puede configurar la variable de entorno <var class="envar">PHP_DOCUMENT_ROOT</var>.
     Si éste es configurado, la versión del <abbr title="Common Gateway Interface">CGI</abbr>
     de PHP siempre construirá el nombre del fichero para abrir con este
     <code class="parameter">doc_root</code> y la ruta de información en la petición,
     de tal forma que pueda estar seguro que ningún script será ejecutado fuera de
     este directorio (excepto por <code class="parameter">user_dir</code> que se encuentra
     más abajo).
    </p>
    <p class="simpara">
     Otra opción utilizable es esta <a href="ini.core.php#ini.user-dir" class="link">user_dir</a>. Cuando <code class="parameter">user_dir</code> no está configurado,
     lo único que controla el fichero abierto es
     <code class="parameter">doc_root</code>.
     Al abrir una URL como <var class="filename">http://mi.servidor/~usuario/documento.php</var> no resulta
     en la apertura de un fichero bajo el directorio personal de los usuarios, pero si
     un fichero llamado <var class="filename">~usuario/documento.php</var> debajo de
     <code class="parameter">doc_root</code> (si, un nombre de directorio que inicia con una a tilde [<code class="literal">~</code>]).
    </p>
    <p class="simpara">
     Si <code class="parameter">user_dir</code> es configurado, por ejemplo <var class="filename">public_php</var>, una petición como <var class="filename">http://mi.servidor/~usuario/doc.php</var> abrirá un
     fichero llamado <var class="filename">doc.php</var> bajo el directorio
     llamado <var class="filename">public_php</var> debajo de el directorio
     personal del usuario.  Si el directorio personal del usuario es <var class="filename">/home/usuario</var>, el fichero ejecutado será
     <var class="filename">/home/user/public_php/doc.php</var>.
    </p>
    <p class="simpara">
     La expansión de <code class="parameter">user_dir</code> sucede sin tomar en cuenta
     la configuración de <code class="parameter">doc_root</code>, así que usted puede
     controlar el acceso a la raíz de los documentos y el directorio de los
     usuarios separadamente.
    </p>
   </div><?php manual_footer($setup); ?>