Ir para conteúdo

POWERED BY:

Arquivado

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

Filipe_Moraes

[Resolvido] Scripts maliciosos!!

Recommended Posts

Antes da SQL voce coloca:

 

usuario2 = LimpaLixo(usuario2)senha2 = LimpaLixo(senha2)SQL = "select * from inforuser where usuario = '"&usuario2&"' and senha = '"&senha2&"' "Set RS = Conn.Execute(SQL)

Acho que é isso. TEstae...

 

------------

Para os filósofos (entre os quais eu) do sqlinjection. hehe

O seguinte, era bom escapar as aspas dentro dessa limpaLixo também. Ela ficaria mais completa.

Tipo dar um replace de ' (aspas) por '' (aspas aspas) ou \' (barra aspas). Vai depender de qual é caractere de escape das aspas no access.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim cara.....verifica se encontra alguma desses caracter maliciosos..ok...antes de fazer a consulta...teipo.

var = falseif input = "--" thenvar = trueend ifif input = "'" thenvar = trueend if//pergunta se encontrouif var = true then redirect "login.asp"else//aqui abri a conexão..//continua a sua programação..........

o que eu estou querendo disse faz sua verificação antes de abrir a conexão.....só com esses caracter malicioso...se encontra algum ja redireciona com uma mensagem de erro.............não deixa fazer a consulta com esses caracter maliciosos....provavelmente esta ussando access??testa isso funcina...

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, estou usando access, vou testar, vlw pelas respostas!! E desculpa ai se alguma vez eu fui ignorante, não tive a intensão!!! Afinal estão ajudando de bom grato!!! Thanks!! ;-)

Compartilhar este post


Link para o post
Compartilhar em outros sites

auhhauhauhahuahua.... que gente confusa....

 

Filipe,

 

a solução eh bem simples, na verdade jah ateh te responderam isso mas foi meio confuso mesmo.

 

lixo = array ( "select" , "drop" , ";" , "--" , "insert" , "delete" , "xp_","'")

 

você tem que colocar a apostrofe no array lixo tb

 

simples.

 

agora se naum funcionar... posta o erro e a linha pra gente ok?

 

ah.. soh mais uma dica, na hora do replace

 

pelo menos eu, procuro substituir o caracter por "XXX"

 

pois qualquer parte da injection ou script que sobrar... ainda vai ter o "XXX" para atrapalhar

 

ateh

Compartilhar este post


Link para o post
Compartilhar em outros sites

SQL Injection, já me ferrei bastante no começo de programação e de sites por causa dos truques do SQL Injection, mais pesquisando bastante sobre o assunto, consegui resolver os problemas e corrigir os bugs...

Compartilhar este post


Link para o post
Compartilhar em outros sites

ja tentei colocar as " ' " , mas continua a dar o erro de sintexe!! Ai PedBolo, não da pra você colocar o codigo modificado do seu jeito que eu coloquei ai em cima, do jeito que você falou para colocar os "XXX" para complicar!! Agradecia a ajuda!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

kra, tenta assim:<%Set Conn = Server.CreateObject("AdoDb.Connection")Conn.provider="Microsoft.Jet.OLEDB.4.0"Conn.connectionstring=Server.Mappath("database/database.mdb")Conn.openusuario2 = Request.Form("usuario")senha2 = Request.Form("senha")char_nulos = Array("<",">","%","'","""","!","=","-","+","/","*",".",",","drop","delete","insert","select","\","(",")","&",":")For i = 0 to UBound(char_nulos)usuario2 = Replace(usuario2 ,char_nulos(i),"XXX")senha2 = Replace(senha2 ,char_nulos(i),"XXX")NextSQL = "select * from inforuser where usuario = '"&usuario2&"' and senha = '"&senha2&"' "Set RS = Conn.Execute(SQL)If RS.EOF ThenResponse.Redirect ("errologin.asp")elsesession("useractivo")=RS("useractivo")If rs("visitante") = "1" thenResponse.Redirect("personagem.asp")elseResponse.Redirect("jornalmafia.asp")end ifend if%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara... se tudo que você quer é evitar códigos em JavaScript em uma página tipo um livro de visitas... a melhor solução é usar SERVER.HTMLENCODE na hora de exibir os dados...Ex:<%=Replace(Server.HTMLEncode(RS_livro_visitas("mensagem")),vbCrlf,"<br>")%>Aqui temos junto com o SERVER.HTMLENCODE um Replace para mostrar os novos parágrafos digitados por "enters".O SERVER.HTMLENCODE fará com que qualquer dígito seja interpretado apenas como texto normal e não código HTML, inclusive( ' " < % & )e etc... Entendeu??Falow!!!

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.