- Sync with EN

git-svn-id: https://svn.php.net/repository/phpdoc/pt_BR/trunk@312857 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
Felipe Pena
2011-07-03 16:56:30 +00:00
parent d5fe57eb50
commit 4459997a58

View File

@@ -1,24 +1,25 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 803bd2e9ce69bcdd3f2cd2a9dff61e2945400734 Maintainer: narigone Status: ready -->
<chapter xml:id="security.magicquotes" xmlns="http://docbook.org/ns/docbook">
<title>Magic Quotes</title>
&warn.deprecated.feature-5-3-0.removed-6-0-0;
<para>
Magic Quotes é um processo de inserção automática de caracteres de escape (\)
em todos os dados indo para o script PHP. É preferível escrever código com
essa opção desligada e adicionar esses caracteres manualmente quando necessário.
Magic Quotes é um processo de inserção automática de caracteres de escape (\)
em todos os dados indo para o script PHP. É preferível escrever código com
essa opção desligada e adicionar esses caracteres manualmente quando necessário.
</para>
<sect1 xml:id="security.magicquotes.what">
<title>O que são Magic Quotes</title>
<title>O que são Magic Quotes</title>
&warn.deprecated.feature-5-3-0.removed-6-0-0;
<para>
Quando ligada, qualquer <literal>'</literal> (aspas simples), <literal>"</literal>
(aspas duplas), <literal>\</literal> (barra invertida) e <literal>NULL</literal>
será colocado uma barra-invertida antes (' vira \') automaticamente. Isso é identico
ao que a função <function>addslashes</function> faz.
será colocado uma barra-invertida antes (' vira \') automaticamente. Isso é identico
ao que a função <function>addslashes</function> faz.
</para>
<para>
Existem três diretivas relacionadas a Magic Quotes:
Existem três diretivas relacionadas a Magic Quotes:
</para>
<itemizedlist>
<listitem>
@@ -26,11 +27,11 @@
<link linkend="ini.magic-quotes-gpc">magic_quotes_gpc</link>
</simpara>
<simpara>
Afeta os dados de requisições HTTP GET, POST, e COOKIE). Não pode ser alterada
em tempo de execução e tem o valor padrão <emphasis>on</emphasis> no PHP.
Afeta os dados de requisições HTTP GET, POST, e COOKIE). Não pode ser alterada
em tempo de execução e tem o valor padrão <emphasis>on</emphasis> no PHP.
</simpara>
<simpara>
Veja também <function>get_magic_quotes_gpc</function>.
Veja também <function>get_magic_quotes_gpc</function>.
</simpara>
</listitem>
<listitem>
@@ -38,13 +39,13 @@
<link linkend="ini.magic-quotes-runtime">magic_quotes_runtime</link>
</simpara>
<simpara>
Se habilitada, a maioria das funções que retorna dados de uma fonte externa,
incluindo bancos de dados e arquivos de texto, serão alterados.
Pode ser alterado em tempo de execução e tem o valor padrão de <emphasis>off</emphasis>
no PHP.
Se habilitada, a maioria das funções que retorna dados de uma fonte externa,
incluindo bancos de dados e arquivos de texto, serão alterados.
Pode ser alterado em tempo de execução e tem o valor padrão de <emphasis>off</emphasis>
no <acronym>PHP</acronym>.
</simpara>
<simpara>
Veja também <function>set_magic_quotes_runtime</function> e
Veja também <function>set_magic_quotes_runtime</function> e
<function>get_magic_quotes_runtime</function>.
</simpara>
</listitem>
@@ -53,45 +54,45 @@
<link linkend="ini.magic-quotes-sybase">magic_quotes_sybase</link>
</simpara>
<simpara>
Se habilitada, uma aspa simples é usada como caracter de escape quando
encontrar outra aspa simples (' vira ''). Se ligada, sobrepõe completamente
Se habilitada, uma aspa simples é usada como caracter de escape quando
encontrar outra aspa simples (' vira ''). Se ligada, sobrepõe completamente
<link linkend="ini.magic-quotes-gpc">magic_quotes_gpc</link>. Ligar
ambas as diretivas significa que apenas aspas simples são substituídas por
ambas as diretivas significa que apenas aspas simples são substituídas por
<literal>''</literal>. Aspas duplas, barras invertidas e NULLs
permanecerão intocados e não serão escapados.
permanecerão intocados e não serão escapados.
</simpara>
<simpara>
Veja também <function>ini_get</function> para pegar esse valor.
Veja também <function>ini_get</function> para pegar esse valor.
</simpara>
</listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="security.magicquotes.why">
<title>Porque nós usamos Magic Quotes</title>
<title>Porque nós usamos Magic Quotes</title>
&warn.deprecated.feature-5-3-0.removed-6-0-0;
<itemizedlist>
<listitem>
<simpara>
Não existe mais razão para usar magic quotes porque não
é mais uma parte suportada do PHP. Entretanto, existe e ajudou
alguns iniciante a contruir um código melhor(mais seguro).
Mas, ao lidar com código que utiliza este recurso
é melhor atualizar o código do que ativar magic quotes.
Não existe mais razão para usar magic quotes porque não
é mais uma parte suportada do PHP. Entretanto, existe e ajudou
alguns iniciante a contruir um código melhor(mais seguro).
Mas, ao lidar com código que utiliza este recurso
é melhor atualizar o código do que ativar magic quotes.
</simpara>
<simpara>
Assim, porque isso existe? Simples, para ajuda a previnir
<link linkend="security.database.sql-injection">injeção de SQL</link>.
Os desenvolvedores de hoje estão mais a par de segurança e acabam usando
<link linkend="security.database.sql-injection">injeção de SQL</link>.
Os desenvolvedores de hoje estão mais a par de segurança e acabam usando
mecanismos especificos do banco de dados para escapar e/ou
comandos preparados ao invés de depender de coisas como magical quotes.
comandos preparados ao invés de depender de coisas como magical quotes.
</simpara>
</listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="security.magicquotes.whynot">
<title>Por que não usar Magic Quotes?</title>
<title>Por que não usar Magic Quotes?</title>
&warn.deprecated.feature-5-3-0.removed-6-0-0;
<itemizedlist>
<listitem>
@@ -99,10 +100,10 @@
Portabilidade
</simpara>
<simpara>
Presumir que ela está ligada, ou desligada, afeta portabilitade. Use
Presumir que ela está ligada, ou desligada, afeta portabilitade. Use
Assuming it to be on, or off, affects portability. Use
<function>get_magic_quotes_gpc</function> para verificar isso e codifique
de acordo com a situação.
de acordo com a situação.
</simpara>
</listitem>
<listitem>
@@ -110,26 +111,26 @@
Performance
</simpara>
<simpara>
Como nem todos os dados escapados são inseridos em um
Como nem todos os dados escapados são inseridos em um
banco de dados, existe uma perda de performance por escapar todos os dados.
Chamar funções de escape (como
<function>addslashes</function>) em tempo de execução é mais eficiente.
Chamar funções de escape (como
<function>addslashes</function>) em tempo de execução é mais eficiente.
</simpara>
<simpara>
Embora o arquivo <filename>php.ini-dist</filename> habilita essas diretivas
por padrão, <filename>php.ini-recommended</filename> desabilita ela.
Essa recomendação é principalmente por razões de performance.
por padrão, <filename>php.ini-recommended</filename> desabilita ela.
Essa recomendação é principalmente por razões de performance.
</simpara>
</listitem>
<listitem>
<simpara>
Inconviniência
Inconviniência
</simpara>
<simpara>
Porque nem todos os dados precisam ter caracteres de escape inseridos, é irritante
ver caracteres de escape onde não deviam. Por exemplo, mandar um e-mail por um formulário, e
ver um monte de \' na mensagem. Para consertar isso, pode ser necessário o
uso excessivo da função <function>stripslashes</function>.
Porque nem todos os dados precisam ter caracteres de escape inseridos, é irritante
ver caracteres de escape onde não deviam. Por exemplo, mandar um e-mail por um formulário, e
ver um monte de \' na mensagem. Para consertar isso, pode ser necessário o
uso excessivo da função <function>stripslashes</function>.
</simpara>
</listitem>
</itemizedlist>
@@ -137,21 +138,20 @@
<sect1 xml:id="security.magicquotes.disabling">
<title>Desabilitando Magic Quotes</title>
&warn.deprecated.feature-5-3-0.removed-6-0-0;
<para>
A diretiva <link linkend="ini.magic-quotes-gpc">magic_quotes_gpc</link>
só pode ser desabilita em nível de sistema, e não em tempo de
execução. Em outras palavras, uso da função <function>ini_set</function>
não é uma opção.
só pode ser desabilita em nível de sistema, e não em tempo de
execução. Em outras palavras, uso da função <function>ini_set</function>
não é uma opção.
</para>
<para>
<example>
<title>Desabilitando magic quotes no lado do servidor</title>
<para>
Um exemplo que configuração dessa diretiva para
Um exemplo que configuração dessa diretiva para
<literal>Off (Desligada)</literal> no arquivo &php.ini;. Para detalhes adicionais, leia a
seção do manual entitulada <link linkend="configuration.changes">Como mudar
os valores das configurações</link>.
seção do manual entitulada <link linkend="configuration.changes">Como mudar
os valores das configurações</link>.
</para>
<screen>
<![CDATA[
@@ -161,16 +161,16 @@
; Magic quotes para dados vindos via GET/POST/Cookie.
magic_quotes_gpc = Off
; Magic quotes para dados gerados em tempo de execução,ex.: dados vindo de SQL, de chamadas à exec(), etc.
; Magic quotes para dados gerados em tempo de execução,ex.: dados vindo de SQL, de chamadas à exec(), etc.
magic_quotes_runtime = Off
; Usar magic quotes no estilo Sybase (escapar ' com '' ao invés de \').
; Usar magic quotes no estilo Sybase (escapar ' com '' ao invés de \').
magic_quotes_sybase = Off
]]>
</screen>
<para>
Se acesso à configuração do servidor não estiver disponível, uso do arquivo
<filename>.htaccess</filename> também é uma opção. Por exemplo:
Se acesso à configuração do servidor não estiver disponível, uso do arquivo
<filename>.htaccess</filename> também é uma opção. Por exemplo:
</para>
<screen>
<![CDATA[
@@ -180,15 +180,15 @@ php_flag magic_quotes_gpc Off
</example>
</para>
<para>
No interesse de escrever código portável (código que funciona em
qualquer ambiente), como onde configurar a opção em nível de servidor não for
possível, aqui está um exemplo de como desabilitar <link linkend="ini.magic-quotes-gpc">
magic_quotes_gpc</link> em tempo de execução. Esse método é ineficiente
então é preferível configurar as diretivas apropriadas em outros lugares.
No interesse de escrever código portável (código que funciona em
qualquer ambiente), como onde configurar a opção em nível de servidor não for
possível, aqui está um exemplo de como desabilitar <link linkend="ini.magic-quotes-gpc">
magic_quotes_gpc</link> em tempo de execução. Esse método é ineficiente
então é preferível configurar as diretivas apropriadas em outros lugares.
</para>
<para>
<example>
<title>Disabilitando magic quotes em tempo de execução</title>
<title>Disabilitando magic quotes em tempo de execução</title>
<programlisting role="php">
<![CDATA[
<?php