<?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 => 'pt_BR',
  ),
  'this' => 
  array (
    0 => 'security.cgi-bin.doc-root.php',
    1 => 'Caso 3: configurando doc_root ou user_dir',
    2 => 'Caso 3: configurando doc_root ou user_dir',
  ),
  'up' => 
  array (
    0 => 'security.cgi-bin.php',
    1 => 'Instalando como bin&aacute;rio CGI',
  ),
  'prev' => 
  array (
    0 => 'security.cgi-bin.force-redirect.php',
    1 => 'Caso 2: usando cgi.force_redirect',
  ),
  'next' => 
  array (
    0 => 'security.cgi-bin.shell.php',
    1 => 'Caso 4: Interpretador do PHP fora da &aacute;rvore de diret&oacute;rios do servidor web',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'pt_BR',
    '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 ou user_dir</h2>
    <p class="simpara">
     Para incluir conteúdo ativo, como script e executáveis, nos
     diretórios de documentos do servidor é algumas vezes considerada uma
     prática insegura. Se, por conta de um erro de configuração, os scripts
     não são executados mas mostrados como documentos HTML normais, isso
     pode resultar em vazamento de propriedade intelectual ou informação
     de segurança, como senhas. Portanto, muitos administradores preferem
     configurar outra estrutura de diretório para scripts que são acessíveis
     apenas pelo CGI do PHP, e, portanto, sempre
     interpretados e não enviados ao navegador.
    </p>
    <p class="simpara">
     Além disso, se o método para assegurar que as requisições não são
     redirecionadas, como descrito na seção anterior, não estiver
     disponível, é necessário configurar um
     <a href="ini.core.php#ini.doc-root" class="link">doc_root</a> no script que
     seja diferente do diretório raiz dos documentos do servidor web.
    </p>
    <p class="simpara">
     Você pode configurar a raiz de documentos dos scripts PHP pela
     diretiva de configuração <a href="ini.core.php#ini.doc-root" class="link">doc_root</a> no
     <a href="configuration.file.php" class="link">arquivo de configuração</a>, ou
     você pode criar a variável de ambiente
     <var class="envar">PHP_DOCUMENT_ROOT</var>. Se ela existir, a versão <abbr title="Common Gateway Interface">CGI</abbr>
     do PHP sempre construirá o nome de arquivo para ser aberto com esse
     <code class="parameter">doc_root</code> e a informação de caminho na
     requisição, para assegurar que nenhum script é executado fora desse
     diretório (exceto por <code class="parameter">user_dir</code>
     abaixo).
    </p>
    <p class="simpara">
     Outra opção utilizável é <a href="ini.core.php#ini.user-dir" class="link">user_dir</a>. Quando <code class="parameter">user_dir</code> for
     indefinido, a única coisa controlando o arquivo aberto é
     <code class="parameter">doc_root</code>. Abrir uma URL como <var class="filename">http://my.host/~user/doc.php</var> não resulta
     em abrir um arquivo no diretório home de users, mas um arquivo
     chamado <var class="filename">~user/doc.php</var> dentro de
     <code class="parameter">doc_root</code> (sim, um nome de diretório começando com til
     [<code class="literal">~</code>]).
    </p>
    <p class="simpara">
     Se <code class="parameter">user_dir</code> estiver, por exemplo, definido para <var class="filename">public_php</var>, uma requisição como <var class="filename">http://my.host/~user/doc.php</var> abrirá
     o arquivo chamado <var class="filename">doc.php</var> no diretório
     chamado <var class="filename">public_php</var> dentro do diretório
     home do usuário. Se o home do usuário é <var class="filename">/home/user</var>, o arquivo executado é
     <var class="filename">/home/user/public_php/doc.php</var>.
    </p>
    <p class="simpara">
     A expansão de <code class="parameter">user_dir</code> acontece independente da
     configuração de <code class="parameter">doc_root</code>, para que você possa controlar
     a raiz de documentos e de acesso de diretório do usuário
     separadamente.
    </p>
   </div><?php manual_footer($setup); ?>