SQL
A SQL – Structured Query Language – é largamente usada para interagir com banco de dados relacionais. Se você considerar que 90% das aplicações utilizam banco de dados com suporte a SQL vai concluir que o uso da SQL é quase uma unanimidade por ser prática, fácil e portátil.
Em se falando de aplicações Web temos uma grande utilização de banco de dados para armazenar as mais diversas informações: endereços e documentos pessoais, contas e valores financeiros, números de cartões de crédito, dados empresariais, etc.
Ao colocar sua aplicação na Web você a esta expondo a um acesso mais amplo e indiscriminado. Afinal qualquer um que tenha acesso a url do site terá acesso a sua aplicação e aos dados que ela disponibiliza. Pensando na segurança de suas informações as empresas investem pesado em firewalls, certificação digital e outros recursos, com o objetivo de se proteger de invasores.
Como evitar uma ataque de injeção SQL
A seguir algumas orientações de como você pode evitar um ataque de injeção SQL :
1- Estabeleça uma política de segurança rígida e criteriosa limitando o acesso dos seus usuários. Isto quer dizer que você deve dar somente os poderes necessários aos seus usuários. Não de acesso de escrita a tabelas e dê somente acesso as tabelas que o usuário vai precisar.
2- Faça a validação da entrada de dados no formulário e não permita os caracteres inválidos como : (‘) , (–) e (;) nem de palavras maliciosas como insert, drop, delete, xp_. Abaixo algumas funções que você pode usar:
Substituindo o apóstrofe(‘) pelo duplo apóstrofe (”)
Substituindo os caracteres e palavras maliciosas por vazio(“”)
Rejeitando os dados maliciosos
0 ) then
ValidaDados = False
exit function
end if
next
end function
%>
Substituindo os caracteres e palavras maliciosas por vazio(“”)
Rejeitando os dados maliciosos
0 ) then
ValidaDados = False
exit function
end if
next
end function
%>
Rejeitando os dados maliciosos
0 ) then
ValidaDados = False
exit function
end if
next
end function
%>
0 ) then ValidaDados = False exit function end if next end function %>
3- Limite a entrada de texto para o usuário no formulário de entrada de dados. Se o campo nome deve ter somente 10 caracteres restrinja a isto a entrada de dados no formulário. O mesmo vale para a senha.
4- Faça o tratamento adequado de erros não permitindo que mensagens de erros exponham informações sobre a estrutura dos seus dados.
5- Faça um log para auditoria dos erros ocorridos e das operações mais importantes da aplicação.