A Injecao de SQL e uma falha de seguranca grave, e infelizmente comum. Um individuo mal intencionado pode, atraves da manipulacao dos dados de entrada, injetar codigos SQL na base de dados no momento da consulta, obtendo informacoes do banco, acesso a conteudo restrito ou mesmo causar danos as tabelas e ao proprio banco.Algumas dicas e medidas simples podem evitar este perigoso ataque:Limitar o tamanho dos campos ao que efetivamente sera utilizado.Se voce possui na sua tabela um campo denominado "senha" que devera conter no maximo 8 caracteres, certifique-se de que seu TextBox tambem esteja limitado a 8 caracteres.Use preferencialmente consultas SQL parametrizadas, como nao ha concatenacao direta de strings, mas sim a passagem de valores atraves de parametros, qualquer comando malicioso inserido nas suas entradas de dados nao sera executado.Dim conn As MySqlConnection Dim cmd As MySqlCommand Dim dr As MySqlDataReader Dim sql As String = _ "select * from users where login = @login and senha = @senha" conn = New MySqlConnection(string_de_conexao) conn.Open() cmd = New MySqlCommand(sql, conn) cmd.Parameters.AddWithValue("@login", txtUsr.Text) ' Adiciona parametro login com valor contido no TextBox txtUsr cmd.Parameters.AddWithValue("@senha", txtPsw.Text) ' Adiciona parametro senha com valor contido no TextBox txtPsw dr = cmd.ExecuteReader() If dr.Read() Then Session("logado") = True Response.Redirect("~/restrito.aspx") End IfQuando consultas parametrizadas nao forem possiveis, substitua os apostrofos. Assim voce evita que o invasor tente fechar seu comando SQL com um apostrofo para em seguida inserir outro codigo.'Chamada da funcao Dim sSQL As String = "select * from vw_clientes c where c.email = '" & _ filtraTexto(txtEmail.Text) & ' and c.senha = '" & filtraTexto(txtSenha.Text) & "'"'Funcao para substituicao de palavras-chave e apostrofoPublic Function FiltraTexto(ByVal sTexto As String) As String Dim lixo As String() = {"--", ";", "*", "xp_", "drop", "@@version", _ "having", "1=1", "EXISTS", "BENCHMARK", "CONCAT"} Dim i As Integer = 0 sTexto = sTexto.Replace("'", "''") For i = 0 To lixo.Length - 1 sTexto = sTexto.Replace(lixo(i), "") Next FiltraTexto = sTextoEnd FunctionSempre que possivel, use uma conta na base de dados com menor nivel de privilegios.Importante: nos casos de pagina web, nunca se esqueca de desativar o debug:No Web.configE nas diretivas de paginaDebug="False"Estas foram algumas dicas simples, e os codigos acima evidentemente podem ser melhorados, mas ja e um comeco =) Boa sorte! Seus clientes menos satisfeitos sao sua maior fonte de aprendizado. - Bill GatesComo cliente de muitas lojas virtuais do Brasil e algumas do exterior, e como alguem que tem a experiencia de atender a clientes diariamente, resolvi questionar esse conceito tao enraizado na mente do brasileiro. A ideia de que o cliente tem sempre razao ja faz parte do senso comum. Mas sera que essa jargao realmente merece alguma consideracao?Certamente o cliente nem sempre tem razao. A questao fundamental reside no fato de que o cliente tem "suas razoes", mas para ele a "sua razao" e a que importa - sempre. Acredito que o sucesso do CDC em proteger de maneira impar o consumidor criou o mito de que o cliente e sempre soberano, e sempre estara certo, por mais que esteja errado. O sucesso em lidar com situacoes estressantes de