Muito obrigado a todos...

O que eu pensava ser "bug" realmente era recurso. E foi bem melhor
e durmo bem mais tranq�ilo hoje em saber que estou tratando meus
"SQL injection".

A pergunta �: Este meu projeto � desenvolvido em Delphi e n�o conhe�o
nenhuma fun��o nele que possa escapar caracteres inv�lidos.
Existiria uma fun��o ou basta detectar somente os caracteres: " ' ; ???

Sds,

Leonardo Pinto.


> Ol�, Pequeno Gafanhoto! Grande revolta eu ver...
>
> A necessidade de s�mbolos de escape (tipicamente o backslash)
> vem da necessidade de
> inserir em strings s�mbolos que n�o poderiam (ou dariam
> trabalho para) ser inseridos de
> outra forma.
> Caracteres especiais, como TAB, CR e LF, n�o tem uma
> representa��o gr�fica. Por isso,
> linguagens como C utilizam representa��es como \t e \n.
> Outros s�mbolos, como " e ', s�o usados como delimitadores.
> Bancos de dados como MySQL
> usam \" e \'. O Oracle (um dos "grandes SGBDs" a que voc� se
> referiu) parece usar '' (pelo
> menos neste exemplo: btitle 'from G. B. Talbot''s Ledger').
> Em PHP, o $ indica o nome de vari�veis. Assim, para imprimir
> um $, voc� precisa escrever
> \$.
> Na verdade, o que voc� aponta como um defeito do MySQL, � uma
> constante em diversas
> linguagens e, por isso, tem suas pr�prias solu��es.
> O PHP, por exemplo, pode fazer o tratamento autom�tico dos
> dados que chegam de um
> formul�rio, adicionando um backslash a caracteres como \,' e
> " - a op��o magic_quotes_gpc
> j� vem ligada por default no php.ini. Se preferir, voc� pode
> fazer isso explicitamente com
> a fun��o addslashes().
> Se voc� n�o fizer nenhum tratamento dos dados fornecidos pelo
> usu�rio, fica f�cil de fazer
> uma SQL injection e emendar no seu SELECT um DROP TABLE
> bairro ou coisa pior. Mesmo que
> com outro SGBD voc� n�o tivesse o problema do backslash, um
> sistema decente ainda teria
> que verificar os dados antes de rodar o SQL.
>
> Augusto
>
> ----- Original Message -----
> From: "Leonardo Pinto" <[EMAIL PROTECTED]>
> To: "Lista Conectiva (E-mail)" <[EMAIL PROTECTED]>
> Sent: Thursday, July 15, 2004 11:40 AM
> Subject: (linux-br) MySQL n�o aceita "\" em WHERE
>
>
>
> Ol� Linuxers,
>
> Estou muito decepcionado com o MySQL. Sei que existem
> "N"s argumentos para este comportamento. Por�m n�o aceito
> como resposta nenhum deles. O fato � que: Imaginem um
> campo bairro onde um usu�rio digita "S�O MIGUEL\S�O RAFAEL"
> E ap�s isto ele deseja fazer uma consulta:
> select * from BAIRRO where CAMPO1 = "S�O MIGUEL\S�O RAFAEL"
> Simplesmente esta situa��o n�o poder� ser realizada, pois
> o pequeno projeto MySQL n�o suporta "\", ele achar� que
> estamos editando um arquivo com linefeeds. heerrrgrrrrr
>
> Sds,
>
> Leonardo Pinto
> OpenLogic Inform�tica Ltda.
> Tel.: (71) 316-1235/8822-1727
> [EMAIL PROTECTED]

---------------------------------------------------------------------------
Esta lista � patrocinada pela Conectiva S.A. Visite http://www.conectiva.com.br

Arquivo: http://bazar2.conectiva.com.br/mailman/listinfo/linux-br
Regras de utiliza��o da lista: http://linux-br.conectiva.com.br
FAQ: http://www.zago.eti.br/menu.html

Responder a