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
