Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
110
Assunto : ASP
Titulo: Resolva em definitivo o problema dos '

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon



Os apóstrofos em instruções SQL são um sério problema. Imagine a seguinte instrução sql :

select * from usuarios where login='fulano' and senha='xxx'

Imagine que fulano e xxx são informações digitadas pelo usuário e que você está testando se essa instrução devolve alguma linha. Se devolver o usuário existe e portanto pode acessar o site. Perfeito.

Mas e se o Hacker (ou um pentelho qualquer) digitar ' na caixa de entrada de dados.

Seu SQL não funcionará e será exibida a instrução SQL na mensagem de erro. Vendo o SQL o hacker poderá digitar o seguinte :

xx' or '1'='1

Percebeu o que vai acontecer quando isso for concatenado com seu SQL ?

Veja :

select * from usuarios where login='fulano' and senha='xx' or '1'='1'

Mesmo que o usuário não exista o '1'='1' no final da instrução fará com que todos os registros sejam retornados. Como sua aplicação só testava se havia retorno, o hacker vai entrar em seu site...

Para resolver isso basta fazer um tratamento adequado da digitação dos '. Além de proteger seu site contra ataques na instrução SQL isso irá evitar mensagens de erros desagradáveis quando a informação realmente contiver '.

A solução é simples : Sempre que precisamos guardar ' no banco devemos dobra-lo, colocando ''. Ao encontrar '' na instrução o banco entenderá que deve gravar apenas 1 '.

Para dobrar o apóstrofo basta utilizar a instrução Replace quando for concatenar a informação do usuário no SQL. Veja :

Replace(request.form("login"),"'","''")

Concatenando essa expressão no SQL os apóstrofos não serão mais problema.

Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
data: 10/18/2012 3:01:00 PM
nome: daniel
email: santind2@gmail.com
comentário:
Me ajudou muito.. Valeu!!

 1  
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br