|
<<<
voltar
::
ASP ::
Proteção de Hacking via Form
Elements
Se alguém se lembra
da grande explosão de ISP''s também se lembra da
''enrascada'' da falta
de proteção dos websites de um desses ISP''s que
permitia passar código de execução via QueryString. Eu estava
criando 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, roda 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 conter 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 ''Caracter 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 ''Caracter 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

Bannerlandia
|