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:  Controlo de Acessos por lista de domínios
Postada em 23/10/2003 por ^HEAVY-METAL^            
Muitos Webmaster vivem com a preocupação diária do roubo de links, sejam estes para uso indevido de forms, downloads, mail, etc. Este script serve para fechar o site contra este tipo de abusos.

O script em si pode ser usado como um simples #include ou no topo da página que pretendemos defender. Basicamente recolhe a variável de servidor HTTP_REFERER e compara-a com uma lista de domínios que temos na file domvalidos.txt, se estiver lá então a leitura da página prossegue, senão o utilizador é redireccionado para a file saida.asp.

O script também faz o log dos domínios (+ a hora!) que estão a aceder a nossa página para a file log.txt, sabemos assim quem está a usar indevidamente a página.
Devemos ter em atenção que temos de criar as files domvalidos.txt e log.txt, devendo a ser editada com os dominios que pretendemos deixar aceder a nossa página.


<%
Response.Buffer = True

Dim fechadominio_fileObject, fechadominio_fileName, fechadominio_fileHandle, fechadominio_httpReferer, fechadominio_httpHost, fechadominio_hostOK

fechadominio_hostOK = false

' Recolha do URL de onde o user veio...
fechadominio_httpReferer=Request.ServerVariables("HTTP_REFERER")

' Grava endereços das páginas de onde vieram os users, com a hora a que vieram...
Set ObjectoFicheiro = CreateObject("Scripting.fileSystemObject")
Set EscreveTexto = ObjectoFicheiro.OpenTextFile(Server.MapPath("log.txt"),8,True)
EscreveTexto.WriteLine(Hour(Now())&"h"&Minute(Now())&"m"&" - "&Request.ServerVariables("HTTP_REFERER"))
EscreveTexto.Close

IF (InStr(fechadominio_httpReferer, "//") <> 0 AND InStr(fechadominio_httpReferer, "//") <> Null) THEN
fechadominio_httpHost = mid(fechadominio_httpReferer, InStr(fechadominio_httpReferer, "//")+2)
END IF
IF (InStr(fechadominio_httpReferer, "/") <> 0 AND InStr(fechadominio_httpReferer, "/") <> Null) THEN
fechadominio_httpHost = left(fechadominio_httpHost, InStr(fechadominio_httpHost, "/")-1)
END IF

' Abre domvalidos.txt...
fechadominio_fileName = Server.MapPath(".")&"\domvalidos.txt"
SET fechadominio_fileObject = Server.CreateObject("Scripting.FileSystemObject")
SET fechadominio_fileHandle = fechadominio_fileObject.OpenTextFile(fechadominio_fileName, 1, FALSE, FALSE)

' Ciclo de check para verificar se o dominio está dentro dos válidos...
WHILE fechadominio_fileHandle.AtEndOfStream <> True
fechadominio_nextLine=fechadominio_fileHandle.ReadLine
IF (LCase(fechadominio_httpHost) = LCase(fechadominio_nextLine)) THEN
fechadominio_hostOK = true
END IF
WEND

' Fecho da file...
fechadominio_fileHandle.Close
SET fechadominio_fileHandle = Nothing
SET fechadominio_fileObject = Nothing

' Se não foi encontrado um dominio válido então o user é redirigido para saida.asp (pode ser para qualquer outra ao nosso gosto)...
IF NOT fechadominio_hostOK THEN
Response.Clear
Response.Redirect("saida.asp")
END IF
%>


T+,
 


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