Na verdade não se deve deixar o servidor exibir erros padrão para o usuário 
final, 
como você disse deve-se tratar o erro e exibir uma mensagem amigável ao usuário.
Acho que o uso do Try nesse caso poderia ser uma solução imediata.

no caso do delphi
try
  Verifica
  Deu erro para pro except
except
  Erro no login
end


Quanto a limitar o uso de caracteres no login e senha, eu já não gosto de 
colocar limitações para o usuário,
mas aí é questão de gosto (ou necessidade da empresa talvez),
nesses casos o que pesa pra mim é que o usuário leigo (que é o foco) vai ficar 
tentando digitar justamente aquele caractere que não pode, 
e vai vir correndo dizer que o sistema não funciona, rsrsrs

Tratar esse detalhes na aplicação é o que demanda tempo...


Marcelo Silva
-----------------------------------------



From: Matheus de Oliveira 
Sent: Tuesday, August 07, 2012 9:21 AM
To: Comunidade PostgreSQL Brasileira 
Subject: Re: [pgbr-geral] Tratamento de Contrabarra




2012/8/7 Marcelo Silva <marc...@ig.com.br>

  Por isso deve-se evitar conferir a senha no SQL

  O melhor é assim

  Select * From Login Where (login = ‘”+var_login+”’)

  // Confere se pegou o login
  if (Result > 0)

  Depois de Trazer o login faz um IF

  if (SuaQuery.SeuCampoSenha = VariavelSenha)

  Prossegue...

  Assim ele pode colocar a injeção que quiser no SELECT pois quem verifica a
  senha é o IF

  Ou seja, verifique o login e senha separadamente

  * Por que o uso de “( )” ?

  Isso evita injeção sem formatação, por exemplo

  a=b and c=d

  Se vc tiver um separador ele vai ter que formatar tamebm na injeção

  (a=b)and(c=d)

  Se ele colocar uma injeção em b ou d vai ficar

  (a=admin or 1=1; -- ')...

  Veja que vai falta fechar o ")" gerando um erro

  Claro que o cara vai tentar de tudo, mas vamos dificultar o máximo :)



Não é a questão de testar a senha ou não via SQL, o que eu também não gosto, 
mas mesmo da forma que você passou um erro será gerado, e, se esse erro não for 
tratado corretamente o cara poderá ver esse erro e identificar a correção, daí 
é só o cara adicionar o parentese também.

O ideal é tratar a string e evitar o erro.

--
Matheus de Oliveira
  





--------------------------------------------------------------------------------
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a