2012/8/6 Anselmo Silva <[email protected]>

> Matheus, obrigado.
> A Linguagem: Delphi. Como eu disse anteriormente o usuário é quem digita a
> contrabarra.
> Como Alguns usuários já acabaram se acostumando em usar a barra como
> "coringa", estou momentaneamente contornando
> com uma função do Dephi *ReplaceStr(where,'\', '%').*
> Não estou tratando contra SQL injection, preciso ler mais sobre. Para essa
> gambiarra temporária haveria riscos de SQL injection?
>
>
Nossa, agora que eu entendi que a barra é o coringa. Particularmente já vi
usar como coringa interrogação e asterisco, barra é a primeira vez... =P

Mas então, o risco de SQL Injection não está na barra, está se o cara
digitar um apóstrofo (aspa simples).
Imagine só, se o cara digita isso aqui numa tela de login:

login: admin' or 1 = 1; --
senha: qualquer coisa

Daí você faz a consulta +/- assim:

    sql = "SELECT * FROM login WHERE login = '" + login + "' AND senha = '"
+ senha "'";

O SQL final ficaria:

    SELECT * FROM login WHERE login = 'admin' or 1 = 1; --' AND senha =
'qualquer coisa';

Ou seja, o cara estaria logado como "admin" (veja que depois do "--" é
comentário).

Se você tratar pelo menos a aspa simples, por exemplo trocando por duas
aspas, você estará livre de SQL Injection. Uma dica boa é usar PREPARED
STATEMENTS que já faz tudo isso pra você.

Atenciosamente,
--
Matheus de Oliveira
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a