Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

kaplan

limpado query string

Recommended Posts

Galera tem um site de um amigo meu que foi invadido, alias zuando neeu descobri o modo que ele fez isto foi sim na parte de noticias tem a index.asp, quando você clica em cima de alguma noticia, vai para a pagina noti.asp?Id=15 certo, ae que começamos a descobrir pq se eu fizer isto.www.site.com.br/noti.asp?Id=15+update+tb_noticias+set+titulo='123'ele vai dar um update em todas as tabelas com o titulo 123eu tentei fazer uma função que limpasse todos os update insert e tal com o replace mais naum deu certo:

Function LimpaLixo( input ) dim lixo dim textoOK lixo = array ("select", "drop", ";", "--", "insert", "delete", "xp_", "update") textoOK = input for i = 0 to LBound(lixo) textoOK = replace( textoOK, lixo(i), "") Next LimpaLixo = textoOK End Function

ele continua fazendo o upload, alguem sabe como proteger sobre isto criando uma função que proteja mesmovlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

A forma de eliminar a SQLInjection completamente seria utilizando consultas parametrizadas, vale a pena dar uma estudada nisso.Mas voltando ao seu código uma forma simples de resolver isso seria a seguinte:noti.asp?Id=15 O id tem que ser numérico, inteiro certo?É só converter o request do ID para inteiro.ID=Cint(Request.Querystring("id"))Se alguém digitar qualquer baboseira vai dar erro (Que é possível tratar), mas pelo menos não zoa o BD.Eliminar ou duplicar as aspas simples também é uma boa medida contra esse tipo de ataque.

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza galera vlw pela ajuda, vou fazer algumas funções para tratar isto...

 

Marcelo sobre métodos para incluir, alterar, consultar eu vi no projeto e esta show de bola

 

http://forum.imasters.com.br/public/style_emoticons/default/devil.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

galera apesar de todos os conselhos eu queria fazer uma função para poder tirar os codigos maliciosos:que contem esta palavras no meu Id("select", "drop", ";", "--", "insert", "delete", "xp_", "update")a minha função nao esta dando certo, alguem pode me ajudar nesta parte??

Compartilhar este post


Link para o post
Compartilhar em outros sites

estou chamado a minha função assim:

id = LimpaLixo(request.QueryString("id"))

se eu chamar a função Lixo(), da um erro de tipos incompativeis.....o que esta errado na minha função?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ae kaplan...tinha um pequeno erro, não é Lbound mas sim Ubound

 

olha como fiz...só tem um porém, você tem que fazer um array que seja capaz de identifiquar qualquer tipo de sql injection e quando limpar não danificar sua quarystring

 

<%Function LimpaLixo(input) dim lixo,lixo2 dim textoOK lixo = array ("select","drop",";","--","insert","delete","xp_","update","'","+having") lixo2 = array ("+select","+drop",";","--","+insert","+delete","+xp_","+update","'","+having") textoOK=input for i = 0 to UBound(lixo)  textoOK = replace(textoOK,lixo(i),"") Next for i = 0 to UBound(lixo2)  textoOK = replace(textoOK,lixo2(i),"") Next LimpaLixo = textoOKEnd FunctionResponse.Write(limpalixo("?id=10&status=a+having"))%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu adicionaria o seguinte no código:textoOK=lcase(input)Porque no replace "delete" é diferente de "Delete", "DELETE", "DeLeTe"...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.