Ir para conteúdo

POWERED BY:

Arquivado

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

desisto

filtro injection

Recommended Posts

tem uma infinidade de filtros pra injection, mas nao achei nenhum funcionasse como deveria

 

se eu tiver na lista de bloqueio a palavra INSERT, ele interpreta INSETO como injectio

 

 

 

 

alguem conhece uma funcao que bloqueie apenas a palavra exatamente como ela é?

Compartilhar este post


Link para o post
Compartilhar em outros sites

sempre uso este exemplo

 

Function SafeSQL(sInput)
  TempString = sInput
  'sBadChars=array("select", "drop", ";", "--", "insert", "delete", "xp_", "#", "%", "&", "'", "(", ")", "/", "\", ":", ";", "<", ">", "=", "[", "]", "?", "`", "|") 
  sBadChars=array("select", "drop", ";", "--", "insert", "delete", "xp_", "#", "%", "&", "'", "(", ")", ":", ";", "<", ">", "=", "[", "]", "?", "`", "|") 
  For iCounter = 0 to uBound(sBadChars)
    TempString = replace(TempString,sBadChars(iCounter),"")
  Next
  SafeSQL = TempString
End function

Compartilhar este post


Link para o post
Compartilhar em outros sites

LEIA O QUE EU ESCREVO ANTES DE POSTAR!

 

esse seu codigo é um bloqueador de palavras - assim como todos os outros - e nao é um filtro injection

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu posso estar enganado, mas acredito que o grande vilão do injection nada mais que as '

 

ou seja

 

palavras não fazem a menor diferença, bloquiar 'insert' ou '--' ou qualquer coisa assim não resolveria nada.

 

Exemplo

SQL = "select * from tabela where login = '"&request.form("a")&"'"

 

Isso seria uma falha de injection, bastando o usuario colocar uma ' (aspas simples) no valor de a para que toda a query entre em conflito, isso não é um erro da linguagem de programação mas sim um principio de funcionamento do proprio SQL, se eu informar no valor de a = ' or ', automaticamente minha SQL receberia o seguinte valor.

 

SQL = "select * from tabela where login = '' or '' "

 

Tornando posso manipular qualquer "coisa" via o parametro de a.

 

Para resolver o problema em ASP classico basta um simples replace

 

SQL = "select * from tabela where login = '"&replace(request.form("a"),"'","''")&"'"

 

Resolvendo o problema de sql injection.

 

Se alguem tiver opinião diferente, que me corrijam por favor, afinal aprender é sempre importante.

PS: não sou bom com textos, espero que tenha ficado "claro" :P

 

 

LEIA O QUE EU ESCREVO ANTES DE POSTAR!

 

esse seu codigo é um bloqueador de palavras - assim como todos os outros - e nao é um filtro injection

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

ficou claro como a noite

brincadeira :)

 

eu tb achava que o maior problema é o plic ', ms na duvida ne... vai saber

cada dia esses malucos inventam uma coisa nova, por isso trato a aspa simples e pretendo bloquear a palavra exata - dentro do contexto

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.