Função para previnir sql injection
Function limpalogin(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,"*","")
limpalogin = str
End Function
3 comentários:
Problemas nesta função. Imagine que o usuário nunca conseguiria se logar se a senha dele fosse "IandMyLove" ... enfim, não tenho sugestão para deixar ok essa função, mas ela não tem aplicabilidade.
Caro Helton,
Não entendi muito bem a sua colocação, mas se você está se referindo a questão case sensitive que alguns bancos são implementados dessa forma basta você comentar a terceira linha da função que é a que deixa a senha ou login em caixa baixa.
Espero ter ajudado.
Não, não, não é isso. Imagine que na senha do usuário exista algum desses caracteres que são substituídos. e se o usuário tiver uma aspa dupla ou simples na senha dele? a função vai tirar isso e substituir por nada, logo comparando com o que está guardado no banco não vai passar.
Se eu quisesse que minha senha fosse "dropMyTable"? é uma senha válida? é né, mas com essa função não daria.
Mas blz, é s[o um comentário.
Postar um comentário