<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Caso 3: configurando doc_root ou user_dir</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="Manual do PHP" HREF="index.html"><LINK REL="UP" TITLE="Instalando como binário CGI" HREF="security.cgi-bin.html"><LINK REL="PREVIOUS" TITLE="Caso 2: usando --enable-force-cgi-redirect" HREF="security.cgi-bin.force-redirect.html"><LINK REL="NEXT" TITLE="Caso 4: Interpretador do PHP fora da árvore de diretórios do servidor web" HREF="security.cgi-bin.shell.html"><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"></HEAD ><BODY CLASS="sect1" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >Manual do PHP</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="security.cgi-bin.force-redirect.html" ACCESSKEY="P" >Anterior</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" >Capítulo 24. Instalando como binário CGI</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="security.cgi-bin.shell.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="sect1" ><H1 CLASS="sect1" ><A NAME="security.cgi-bin.doc-root" >Caso 3: configurando doc_root ou user_dir</A ></H1 ><P > Para incluir conteúdo ativo, como script e executáveis, nos diretórios de documentos do servidor é algumas vezes consideread 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 preferirão configura outra estrutura de diretório para scripts que são acessíveis apenas pelo CGI do PHP, e, portanto, sempre interpretados e não enviado ao navegador. </P ><P > Além disso, se o método para assegura que as requisições não são redirecionadas, como descrito na seção anterior, não estiver disponível, é necessário configura um doc_root para os script que é diferente do doc_root do servidor web. </P ><P > Você pode configura a raiz de documentos dos scripts PHP pela diretiva de configuração <A HREF="ini.core.html#ini.doc-root" >doc_root</A > no <A HREF="configuration.html#configuration.file" >arquivo de configuração</A >, ou você pode criar a variável de ambiente <CODE CLASS="envar" >PHP_DOCUMENT_ROOT</CODE >. Se ela existir, a versão CGI 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 > Outra opção utilizável é <A HREF="ini.core.html#ini.user-dir" >user_dir</A >. Quando user_dir não existir, a única coisa controlando o nome do arquivo aberto é <CODE CLASS="parameter" >doc_root</CODE >. Abrir uma URL como <TT CLASS="filename" >http://my.host/~user/doc.php</TT > não resulta em abrir um arquivo no diretório home de users, mas um arquivo chamado <TT CLASS="filename" >~user/doc.php</TT > dentro de doc_root (sim, um nome de diretório começando com til [<TT CLASS="literal" >~</TT >]). </P ><P > Se user_dir existir e tiver valor de, por exemplo, <TT CLASS="filename" >public_php</TT >, uma requisição como <TT CLASS="filename" >http://my.host/~user/doc.php</TT > abrirá o arquivo chamado <TT CLASS="filename" >doc.php</TT > no diretório chamado <TT CLASS="filename" >public_php</TT > dentro do diretório home do usuário. Se o home do usuário é <TT CLASS="filename" >/home/user</TT >, o arquivo executado é <TT CLASS="filename" >/home/user/public_php/doc.php</TT >. </P ><P > 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 ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="security.cgi-bin.force-redirect.html" ACCESSKEY="P" >Anterior</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Principal</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="security.cgi-bin.shell.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Caso 2: usando --enable-force-cgi-redirect</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="security.cgi-bin.html" ACCESSKEY="U" >Acima</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Caso 4: Interpretador do PHP fora da árvore de diretórios do servidor web</TD ></TR ></TABLE ></DIV ></BODY ></HTML >