USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Dicas

  ASP - Active Server Page    (Miscelâneas)

Título da Dica:  Proteção de Hacking via Form Elements
Postada em 13/10/2003 por ^HEAVY-METAL^            
Se alguém se lembra da grande explosão de ISP's também se lembra da 'barracada' da falta de proteção dos Websites de um desses ISP's que permitia passar código de execução via QueryString. Estava eu a criar um formulário de entrada de dados quando me lembrei que talvez fosse possível também fazer isso via forms.

Pois a verdade é que dá mesmo se esses dados forem pré confirmados via Response.Writes ao cliente! Javascript, ASP, corre tudo.

Assim, e para evitar o que quer que seja de situações desse género criei uma função que tem uma execução simples : numa string, se à frente de um < ou atrás de um > não estiver um número, ele devolve um valor verdadeiro.

Existe assim a possibilidade de verificar, em qualquer parte do código, se uma dada string pode prejudicar por contendo elementos de scripting:

'Função Verifica por Ederico Rocha 2000
'Pega numa string e verifica se contém dados
'que executando possam abrir falhas de
'segurança
'Meio de utilização : Verifica(String)
'Resposta : TRUE se encontrar falha de segurança
' : FALSE se não encontrar
Function Verifica(Texto)
Dim CarAberturaTag, CarFechoTag

Verifica = false 'Se não se encontrar nada, devolve falso

If InStr(1,Texto,"<") <>0 then
'Caractér logo à frente do <
CarAberturaTag = Mid(Texto,InStr(1,Texto,"<")+1,1)
if (NOT Asc(CarAberturaTag) > 47) OR (NOT Asc(CarAberturaTag) < 58) then
'Se não for um número devolve verdadeiro - possível problema
Verifica = true
end if
end if


If InStr(1,Texto,">") <>0 then
'Caractér logo atrás do >
CarFechoTag = Mid(Texto,InStr(1,Texto,">")-1,1)
if (NOT Asc(CarFechoTag) > 47) OR (NOT Asc(CarFechoTag) < 58) then
'Se não for um número devolve verdadeiro - possível problema
Verifica = true
end if
End if

End Function

Espero desde já que a função ajude a quem nem sequer tinha antes pensado nisto (como eu ;p) e boa programação a todos.

T+,
 


CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página