PUBLICIDADE

Autor

zeca

José Carlos Barreto

membro deste novembro de 2006

Tags

Compartilhe e guarde

  • Rec6
  • StumbleUpon
  • ueba
  • linkk
  • dihitt
  • linkloko
  • linkto
  • Technorati
  • Simpy
  • del.icio.us
  • Faves: Fave It!

PUBLICIDADE

Enquete

Com que frequência você acessa o CódigoFonte.com.br?

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
%>

Sim   Não   Este código foi útil para você?
NotaComentário
Ainda não foi enviado nenhum comentário.
Regras:
Os comentários seguem as seguintes regras:
  • Todos os comentários são enviados por membros cadastrados no site.
  • A pontuação de comentários de conteúdo do próprio membro não serão computados.
  • Os comentários serão pré-aprovados, porém a equipe do site revisará o conteúdo de todos os comentários podendo ser invalidados (inclusive a pontuação).
  • Os comentários precisam ter, obrigatóriamente, coerência sobre o conteúdo que será comentado.
  • O membro que atingir 5 comentários invalidados não poderá mais comentar dentro do site. Com isso o membro não poderá mais ganhar pontos com comentários.
  • Há um limite de 10 comentários por dia para cada membro.
  • Qualquer comentário após ter sido publicado poderá ser retirado através da opção ( denunciar)

Comente

     (ainda não tem cadastro? clique aqui!)


Máximo de 30 caracteres

Máximo de 255 caracteres
 

R&W Consulting - Soluções Web Hospedagem UOL HOST PagSeguro - solução para pagamentos online
© 2006-2009 R&W Informática Ltda. - Todos os direitos reservados.