Evitando injecao SQL

Depois de muito tempo sem postar vai ai 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.


Segurança é coisa séria e vale a pena tomar todas as precauções a nosso alcance para preservar nossos dados e nossos empregos.

Nenhum comentário:

Postar um comentário