A técnica de SQL Injection consiste em manipular as instruções SQL que executamos nas nossas aplicações, inserindo comentários caracteres que corresponde à comentários em SQL em um campo textbox, por exemplo.
Com isso o hacker consegue fazer operações diretamente no banco de dados excluindo registros, tabelas ou entrando no sistema sem permições.
Invadir um sistema utilizando técnicas de SQL Injection é uma coisa boba, mas tem muito desenvolvedor que ainda não leva em conta isso quando está programando.
No código acima, por exemplo, caso a variável codigo recebesse qualquer string, ela seria incorporada ao comando, mesmo que fossem ‘—‘, podendo comentar o restando do código ou inserir novos trechos.
SqlCommand objCmd = new SqlCommand(“SELECT NOME FROM CONTATOS WHERE CODIGO = ” + codigo, objConn); |
Para resolver esse problema é simples. O mesmo código acima foi transposto abaixo, de forma a evitar vulnerabilidades em nossa aplicação.
SqlCommand objCmd = new SqlCommand(“SELECT NOME FROM CONTATOS WHERE CODIGO = @codigo” , objConn)objCmd.Parameters.AddWithValue(“@codigo“, codigo); |
Claro que existem outras formas de se burlar um site e vários cuidados com a segurança devem ser tomados, mas isso já é assunto para um outro post ????
[…] Não se esqueça que ao realizar qualquer tipo de consulta em seu banco de dados é necessário utilizar técnicas para evitar ataques. Não deixe de ler o post . Net – Evitando ataques por SQL Injection. […]
… [Trackback]…
[…] Informations on that Topic: eufacoprogramas.com/desenvolvimento/net-como-evitar-sql-injection/ […]…