Sophie

Sophie

distrib > Mandriva > 2008.1 > i586 > by-pkgid > 703d980c580707c382b4e43e25965bc5 > files > 11047

php-manual-pt_BR-5.2.4-1mdv2008.1.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Dados Enviados pelo Usuário</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="Segurança"
HREF="security.html"><LINK
REL="PREVIOUS"
TITLE="Usando a diretiva Register Globals"
HREF="security.globals.html"><LINK
REL="NEXT"
TITLE="Magic Quotes"
HREF="security.magicquotes.html"><META
HTTP-EQUIV="Content-type"
CONTENT="text/html; charset=UTF-8"></HEAD
><BODY
CLASS="chapter"
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.globals.html"
ACCESSKEY="P"
>Anterior</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="security.magicquotes.html"
ACCESSKEY="N"
>Próxima</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="chapter"
><H1
><A
NAME="security.variables"
>Capítulo 30. Dados Enviados pelo Usuário</A
></H1
><P
>&#13;    A maior fraqueza na maioria dos programas PHP não é inerente a
    linguagem em si, mas meramente um problema de código escrito desconsiderando
    segurança. Por essa razão, você sempre deve investir um pouco de tempo
    considerando as implicações de um certo pedaço de código, para ter certeza
    que o dano possível se uma variável não esperada for submetida ao mesmo.
    <TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
CLASS="EXAMPLE"
><TR
><TD
><DIV
CLASS="example"
><A
NAME="AEN6624"
></A
><P
><B
>Exemplo 30-1. Uso Perigoso de Variáveis</B
></P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><code><font color="#000000">
<font color="#0000BB">&lt;?php<br /></font><font color="#FF8000">// remove um arquivo do diretório home do usuário... ou talvez<br />// de outra pessoa?<br /></font><font color="#0000BB">unlink </font><font color="#007700">(</font><font color="#0000BB">$evil_var</font><font color="#007700">);<br /><br /></font><font color="#FF8000">// Escreve registro do acesso... ou talvez uma entrada em /etc/passwd?<br /></font><font color="#0000BB">fwrite </font><font color="#007700">(</font><font color="#0000BB">$fp</font><font color="#007700">, </font><font color="#0000BB">$evil_var</font><font color="#007700">);<br /><br /></font><font color="#FF8000">// Executa algo trivial... ou rm -rf *?<br /></font><font color="#0000BB">system </font><font color="#007700">(</font><font color="#0000BB">$evil_var</font><font color="#007700">);<br /></font><font color="#0000BB">exec </font><font color="#007700">(</font><font color="#0000BB">$evil_var</font><font color="#007700">);<br /><br /></font><font color="#0000BB">?&gt;</font>
</font>
</code></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
>
    Você sempre deve examinar cuidadosamente seu código para se assegurar que
    quaisquer variáveis sendo enviadas do navegador web estão sendo checadas
    de maneira correta, e faz a si mesmo as seguintes perguntas:
    <P
></P
><UL
><LI
><P
>&#13;       Seu script só afetará os arquivos desejados?
      </P
></LI
><LI
><P
>&#13;       Dados incomuns ou indesejados podem ser utilizados?
      </P
></LI
><LI
><P
>&#13;       Esse script pode ser usado de maneiras não intencionadas?
      </P
></LI
><LI
><P
>&#13;       Ele pode ser usado in conjunto com outros scripts de maneira
       negativa?
      </P
></LI
><LI
><P
>&#13;       As transações serão registradas adequadamente?
      </P
></LI
></UL
>
    Respondendo essas perguntas adequadamente enquanto escrevendo o script,
    ao invés de depois, previne a re-escrita indesejada quando você
    precisar aumentar a segurança. Começando com essa linha de raciocínio,
    você não garante a segurança do seu sistema, mas pode ajudar
    a aumentá-la.
   </P
><P
>&#13;    Você também pode considerar desligar as diretivas register_globals,
    magic_quotes, ou outras configurações convenientes que pode confundir
    você em relação a validade, origem, ou valor de uma variável qualquer.
    Trabalhar com PHP em modo error_reporting(E_ALL) também pode ajudar avisando
    sobre variáveis sendo usadas antes de serem checadas ou
    inicializadas (então você pode previnir que dados incomuns sejam
    operados).
   </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.globals.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.magicquotes.html"
ACCESSKEY="N"
>Próxima</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Usando a diretiva Register Globals</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="security.html"
ACCESSKEY="U"
>Acima</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Magic Quotes</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>