Categorias

Proteção de Hacking via Form Elements

Se alguém se lembra da grande explosão de ISP’s também se lembra da falta de proteção dos websites de um desses ISP’s que permitia passar código de execução via QueryString. Criando um formulário de entrada de dados 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 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
'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
	Dim 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    
		'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
%>