O que é SqlInjection?

O que é SqlInjection?

SQL pode ser resumida como sendo a linguagem usada para um aplicativo se comunicar com o banco de dados. Por meio da linguagem SQL podem ser enviados ao banco de dados comandos de inserção, exclusão e edição de dados além é claro de consultas. [imagem:resources/uploads/posts/sqlinjection.gif] {quebra} No exemplo abaixo faremos uma consulta SQL procurando pelo nome do funcionário de código 140 select nome from funcionarios where codigo = 140 No exemplo acima solicitamos ao banco de dados em linguagem SQL para nos informar o valor do campo NOME na tabela FUNCIONARIOS que tem o campo CODIGO preenchido com 140. Na web como também em softwares podemos infiltrar outros códigos para receber outras informações; Digamos que tenhamos um campo no programa ou site para digitar o código do funcionário e após pressionar o botão OK seja exibido o nome do funcionário. Neste caso seria usada uma variável no lugar do número select nome from funcionarios where codigo = codigo_funcionario.text Se ao invés de digitarmos o código 140 digitarmos 140 or codigo > 0 os dados de todos funcionarios seriam mostrados! isso é SQLInjection. Através de um comando SQL podem ser EXIBIDOS, EDITADOS e EXCLUÍDOS registros do presentes no banco de dados. Em alguns casos, podem ser enviados comandos para acesso ao sistema operacional. == Como se previnir de SQL Injection == Existem várias maneiras de se proteger de SQL Injection a primeira delas é validar a entrada. No caso acima seria necessário apenas construir um bloco de código de verificação para checar se o que foi digitado é ou não um número. Se for realizaria a consulta. Se não for mostraria uma mensagem de aviso. Outra forma muito utilizado é a limpeza do que foi digitado. Aspas, pontos, ponto e virgulas e parenteses são retirados das variaveis antes de serem enviadas para o bloco de consulta SQL. O invasor deve ser impedido de ver os detalhes dos erros que são geralmente exibidos. A criatividade dos hackers cresce a cada dia portanto nada mais eficaz que utilizar softwares que realizam testes de seguranaça em aplicações tentando simular ataques a sites e assim verificar se ficaram algumas brechas. Em geral a simples validação do que foi digitado ou pesquisado antes de ser enviado ao banco já resolveria 90% dos casos.



Veja Também