Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal,
quais são as melhores dicas para proteger um sistema web contra Injeção SQL? No campo de login estou tratando as aspas simples da seguinte forma:
login = Trim(Request.Form("login"))
login = Replace(login, "'", "")
login = Replace(login, "|", "")
senha = Trim(Request.Form("senha"))
senha = Replace(senha, "'", "")
senha = Replace(senha, "|", "")
Só isso resolve? O ideal seria construi uma função com uma rotina para dar uma replace em caracteres invalidos. Acho que essa ideia seria boa.
Segue uma função que um amigo me passou, mas segundo ele essa função funciona bem para evitar os ataques mas o problema é que em sistemas com grandes acessos ela poderá travar pois ela faz um loop nas requisições, segue:
<%
Function BlockInjection(entrada)
Dim i
Dim palavra
Dim arrayReservado : arrayReservado = Array(_
"UPDATE", _
"SELECT", _
"INSERT", _
"DELETE", _
"DROP", _
"XTYPE", _
"EXEC", _
"VARCHAR", _
"DECLARE", _
"'", _
"EXECUTE", _
"XP_", _
"FROM", _
"NULL", _
"SET", _
"CAST", _
"CONVERT", _
"DATABASE", _
"TABLE", _
"WHERE", _
"--", _
"-", _
";", _
"--", _
"|", _
"""", _
"(", _
")", _
"%" _
)
For i = 0 To uBound(arrayReservado)
palavra = 1
While palavra <> 0
palavra = inStr(1, entrada, arrayReservado(i), vbTextCompare)
If palavra <> 0 Then
entrada = Left(entrada, palavra - 1) & "" & Asc(Mid(entrada, palavra, 1)) & ";" & Right(entrada, Len(entrada) - palavra)
End If
Wend
Next
blockInjection = entradaCarregando comentários...