PUBLICIDADE
Este artigo tem nota
10

Autor

hugofg

Hugo Felipe

membro deste junho de 2008

Compartilhe e guarde

  • Rec6
  • StumbleUpon
  • ueba
  • linkk
  • dihitt
  • linkloko
  • linkto
  • Technorati
  • Simpy
  • del.icio.us
  • Faves: Fave It!

PUBLICIDADE

Enquete

Você já está estudando HTML5 e CSS3?
terça-feira, 23 de dezembro de 2008

Previna-se contra a Injeção SQL


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 ('')



<%
Function ExpurgaApostrofe(texto)
ExpurgaApostrofe = replace( texto , "'" , "''")
End function
%>

Substituindo os caracteres e palavras maliciosas por vazio("")



<%
Function LimpaLixo( input )
dim lixo
dim textoOK
lixo = array ( "select" , "drop" , ";" , "--" , "insert" , "delete" , "xp_")
textoOK = input
for i = 0 to uBound(lixo)
textoOK = replace( textoOK , lixo(i) , "")
next
LimpaLixo = textoOK
end Function
%>

Rejeitando os dados maliciosos



<%
Function ValidaDados( input )
lixo = array ( "select" , "insert" , "update" , "delete" , "drop" , "--" , "'")
ValidaDados = true
for i = lBound (lixo) to ubound(llixo)
if ( instr(1 , input , lixo(i) , vbtextcompare ) <> 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.
Sim   Não   Este artigo foi útil para você?
NotaComentário
10
usertop comentou em 7/11/2009

valeu a Dica

muito bom, Injeção SQL sempre é um problema
Regras:
Os comentários seguem as seguintes regras:
  • Todos os comentários são enviados por membros cadastrados no site.
  • A pontuação de comentários de conteúdo do próprio membro não serão computados.
  • Os comentários serão pré-aprovados, porém a equipe do site revisará o conteúdo de todos os comentários podendo ser invalidados (inclusive a pontuação).
  • Os comentários precisam ter, obrigatóriamente, coerência sobre o conteúdo que será comentado.
  • O membro que atingir 5 comentários invalidados não poderá mais comentar dentro do site. Com isso o membro não poderá mais ganhar pontos com comentários.
  • Há um limite de 10 comentários por dia para cada membro.
  • Qualquer comentário após ter sido publicado poderá ser retirado através da opção ( denunciar)

Comente

     (ainda não tem cadastro? clique aqui!)


Máximo de 30 caracteres

Máximo de 255 caracteres
 

R&W Consulting - Soluções Web Hospedagem UOL HOST PagSeguro - solução para pagamentos online
© 2006-2009 R&W Informática Ltda. - Todos os direitos reservados.