Ir para conteúdo

POWERED BY:

Arquivado

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

fabinhosantos

Função para proteção contra sql injection não filtra

Recommended Posts

Pessoal estou usando uma função ná página de ação de um formulario

para limpar de possiveis códigos maliciosos.

 

 

function LimparTexto(str)
str = trim(str)
str = lcase(str)
str = replace(str,"=","")
str = replace(str,"'","")
str = replace(str,"""""","")
str = replace(str," or ","")
str = replace(str," and ","")
str = replace(str,"(","")
str = replace(str,")","")
str = replace(str,"<","[")
str = replace(str,">","]")
str = replace(str,"update","")
str = replace(str,"-shutdown","")
str = replace(str,"--","")
str = replace(str,"'","")
str = replace(str,"#","")
str = replace(str,"$","")
str = replace(str,"%","")
str = replace(str,"¨","")
str = replace(str,"&","")
str = replace(str,"'or'1'='1'","")
str = replace(str,"--","")
str = replace(str,"insert","")
str = replace(str,"drop","")
str = replace(str,"delet","")
str = replace(str,"xp_","")
str = replace(str,"select","")
str = replace(str,"*","")
LimparTexto = str
end function

 

v_credencial = server.htmlEncode(request.form(LimparTexto("usuario")))

v_pass = server.htmlEncode(request.form(LimparTexto("senha")))

 

No formulario eu escrevo alguns código e na pagina de ação dou um response.write para ver se excluiu,

mas não exclui... a string fica do mesmo jeito que postei no campo do formulário...

 

por exemplo: coloco: 'or'1'='1' tanto no usuário como na senha e na página de ação é exibido do mesmo jeito.

 

Algum sabe como filtrar o conteudo de campos de formulario contra sql injection?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O correto é desta maneira

 

v_credencial = LimparTexto(request.form"usuario"))
v_pass = LimparTexto(request.form("senha"))

Compartilhar este post


Link para o post
Compartilhar em outros sites

O correto é desta maneira

 

v_credencial = LimparTexto(request.form"usuario")
v_pass = LimparTexto(request.form("senha"))

 

é dificil uma função contra sql injection que seja case sensitive e não sobrecarregue o servidor?

 

muito obrigado pela atenção

Compartilhar este post


Link para o post
Compartilhar em outros sites

Depende sempre da forma que você for aplicar, no geral não é já que para isso basta uma boa rotina que de conta do recado, mas... depende muito da maneira como programara o site.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu utilizo essa função , roda belezinha...

 

Function SafeSQL(sInput)
 TempString = sInput
 'sBadChars=array("select", "drop", ";", "--", "insert", "delete", "xp_", "#", "%", "&", "'", "(", ")", "/", "\", ":", ";", "<", ">", "=", "[", "]", "?", "`", "|") 
 sBadChars=array("select", "drop", ";", "--", "insert", "delete", "xp_", "#", "%", "&", "'", "(", ")", ":", ";", "<", ">", "=", "[", "]", "?", "`", "|") 
 For iCounter = 0 to uBound(sBadChars)
   TempString = replace(TempString,sBadChars(iCounter),"")
 Next
 SafeSQL = TempString
End function

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.