|
<<<
voltar
::
ASP ::
Controle de Acessos por lista de
domínios
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
usuário é redirecionado para a file
saida.asp.
O script também faz o log dos
domínios (+ a hora!) que estão acessando a nossa página
para o file log.txt, sabemos assim quem está usando
indevidamente a página. Devemos ter em atenção que
temos de criar os files domvalidos.txt e log.txt,
devendo ser editada com os domínios que pretendemos
deixar acessar 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 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 domínio 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
'''' Fechamento do
file... fechadominio_fileHandle.Close SET
fechadominio_fileHandle = Nothing SET
fechadominio_fileObject = Nothing
'''' Se não foi
encontrado um domínio válido então o user é
redirecionado para saida.asp (pode ser para qualquer
outra ao nosso gosto)... IF NOT fechadominio_hostOK
THEN Response.Clear Response.Redirect("saida.asp") END
IF %>

Bannerlandia
|