-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Subject: MySQL n�o aceita "\" em WHERE
Resposta: � claro que ele aceita. Voc� � que est� fazendo besteira.
Leonardo Pinto wrote:
>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
Eu j� respondi isso para voc� uma vez. Voc� n�o entendeu ou fez que n�o
entendeu.
Vamos para outro exemplo: imagine que seu usu�rio tivesse digitado o
seguinte (inclusive a aspa):
S�O MIGUEL"; delete from BAIRRO;
A�, quando voc� vai procurar no banco de dados, voc� envia:
select * from BAIRRO where CAMPO1 = "S�O MIGUEL"; delete from BAIRRO;"
O que vai ocorrer? Bom, vai apagar tudo do seu banco de dados. Legal,
n�?
Por isso que eu lhe falei antes e repito:
NUNCA CONFIE NA INFORMA��O DO USU�RIO
toda informa��o do usu�rio deve ser tratada de modo a suprimir os
caracteres n�o permitidos.
O seu aplicativo deve fazer isso: tanto o PHP quanto a pr�pria
libmysqlclient j� t�m fun��es que fazem esse "escape" dos caracteres.
Ou seja, o seu usu�rio digita:
S�O MIGUEL\S�O RAFAEL
e voc� manda a seguinte pesquisa para o servidor:
select * from BAIRRO where CAMPO1 = "S�O MIGUEL\\S�O RAFAEL";
Se o seu usu�rio tivesse digitado aquilo que eu propus anteriormente --
que antes teria apagado tudo -- voc� enviaria:
select * from BAIRRO where CAMPO1 = "S�O MIGUEL\"; delete from BAIRRO;"
Uma simples barra invertida pode ser a diferen�a entre o seu sistema
funcionar normalmente e um usu�rio mal-intencionado apagar seu banco de
dados.
Agora entendeu?
- --
Thiago Macieira - Registered Linux user #65028
thiago (AT) macieira (DOT) info
ICQ UIN: 1967141 PGP/GPG: 0x6EF45358; fingerprint:
E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)
iD8DBQFA9uXdM/XwBW70U1gRAjdmAKCgYGvFCZRPu3UPeKBRBcC0EJ7FCgCggorv
pYDQHlcsUJx1l0wVASmykDk=
=S4Hc
-----END PGP SIGNATURE-----
---------------------------------------------------------------------------
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