Embora os script tenham um conjunto padrão de regras instalado para permitir que ele funcione de forma confiável, sem qualquer alteração, você pode facilmente remover essas regras se você não gostar delas - criando o seu próprio conjunto poderoso de regras é incrivelmente fácil.
<%
Sub DenyCrawler()
Dim sUserAgent
sUserAgent = Trim( Request.ServerVariables("HTTP_USER_AGENT") )
If EmptyUA_Test( sUserAgent ) Or BadUA_Test( sUserAgent ) Or BadIP_Test( Request.ServerVariables("Remote_Addr") ) Then
Response.Status = "403 Access Denied"
%><html>
<head>
<title><%= Response.Status %></title>
<meta name="robots" content="noindex" />
</head>
<body>
<h1><%= Response.Status %></h1>
Acesso ao recurso solicitado foi negado.
Nós suspeitamos que você está usando um processo automatizado para acessar este site. Por favor, tente novamente com um navegador regular.
</body>
</html>
<%
Response.End
End If
End Sub
Function TestRegExp( ByVal sInput, ByVal sRegExp )
'Code regular expression
Dim objRegular
Set objRegular = New RegExp
objRegular.Pattern = sRegExp
objRegular.IgnoreCase = True
TestRegExp = objRegular.Test( sInput )
Set objRegular = Nothing
End Function
Sub UA_Add( ByVal sNewUserAgent, ByRef sUserAgents )
If sUserAgents = vbNullString Then
sUserAgents = sNewUserAgent
Else
sUserAgents = sUserAgents & "|" & sNewUserAgent
End If
End Sub
Function EmptyUA_Test( ByVal sUserAgent )
'Code to check if a UA is an empty or v. small piece of text
EmptyUA_Test = False
sUserAgent = Trim( sUserAgent )
If sUserAgent = vbNullString Or Len( sUserAgent ) = 1 Then
EmptyUA_Test = True
End If
End Function
Function BadUA_Test( ByVal sUserAgent )
Dim sUserAgentList
BadUA_Test = False
UA_Add "^Mozilla/\d\.\d\s\(compatible;\sAdvanced\sEmail\sExtractor\sv\d\.\d+\)$", sUserAgentList
UA_Add "CherryPicker", sUserAgentList
UA_Add "Crescent", sUserAgentList
UA_Add "^DA\s\d\.\d+$", sUserAgentList
UA_Add "^Mozilla/\d\.\d\s\(compatible;\sMSIE\s\d\.\d;\sWindows\sNT;\sDigExt;\sDTS\sAgent$", sUserAgentList
UA_Add "EasyDL/\d\.\d+", sUserAgentList
UA_Add "e-collector", sUserAgentList
UA_Add "EmailCollector", sUserAgentList
UA_Add "^EmailSiphon$", sUserAgentList
UA_Add "EmailWolf", sUserAgentList
UA_Add "ExtractorPro", sUserAgentList
UA_Add "Go!Zilla", sUserAgentList
UA_Add "GetRight/\d.\d", sUserAgentList
UA_Add "^ia_archiver$", sUserAgentList
UA_Add "Indy\sLibrary", sUserAgentList
UA_Add "larbin", sUserAgentList
UA_Add "MSIECrawler", sUserAgentList
UA_Add "Microsoft\sURL\sControl", sUserAgentList
UA_Add "NEWT\sActiveX", sUserAgentList
UA_Add "NICErsPRO", sUserAgentList
UA_Add "RealDownload/\d\.\d\.\d\.\d", sUserAgentList
UA_Add "Teleport", sUserAgentList
UA_Add "Telesoft", sUserAgentList
UA_Add "UtilMind\sHTTPGet", sUserAgentList
UA_Add "WebBandit", sUserAgentList
UA_Add "webcollage/\d\.\d\d", sUserAgentList
UA_Add "WebCopier\sv\d\.\d", sUserAgentList
UA_Add "WebEMailExtrac", sUserAgentList
UA_Add "WebZIP", sUserAgentList
UA_Add "^WGet/\d\.\d", sUserAgentList
UA_Add "^Zeus.+Webster", sUserAgentList
UA_Add "^Mozilla/3\.Mozilla/2\.01\s\(Win95;\sI\)$", sUserAgentList
UA_Add "^Internet\sExplorer\s?\d?\.?\d?$", sUserAgentList
UA_Add "^IE\s\d\.\d\sCompatible.*Browser$", sUserAgentList
UA_Add "^Microsoft\sInternet\sExplorer/4\.40\.426\s\(Windows\s95\)$", sUserAgentList
UA_Add "^SurveyBot/\d\.\d\s(<a\shref='http://www\.whois\.sc'>Whois\sSource</a>|\(Whois\sSource\))$", sUserAgentList
UA_Add "^Mozilla/4\.0\s\(?hhjhj@yahoo\.com\)?$", sUserAgentList
UA_Add "^MSIE", sUserAgentList
UA_Add "^Mozilla$", sUserAgentList
UA_Add "^Mozilla(\\|/)\?\?$", sUserAgentList
UA_Add "^Internet\sExplore\s?\d?\.?[a-z0-9]+$", sUserAgentList
UA_Add "^IAArchiver-\d\.\d$", sUserAgentList
UA_Add "^NPBot(-\d/\d\.\d)?(\s\(http://www\.nameprotect\.com/botinfo\.html\))?$", sUserAgentList
UA_Add "^Webclipping\.com$", sUserAgentList
UA_Add "^Mozilla/\d\.\d\s\(X11;\sLinux\si686;\sen-US;\srv:\d.\d[a-z0-9]*;\sOBJR\)$", sUserAgentList
UA_Add "^Sqworm/\d\.\d\.\d\d-BETA\s\(beta_release;\s\d{8}-\d{3};\si\d{3}-pc-linux-gnu\)$", sUserAgentList
UA_Add "^Lickity_Split/\d\.\d$", sUserAgentList
UA_Add "^Production\sBot\s\d+B$", sUserAgentList
UA_Add "^amzn_assoc$", sUserAgentList
UA_Add "^Harvest", sUserAgentList
UA_Add "^Webdup/\d\.\d$", sUserAgentList
UA_Add "^WebIndex/\d\.\d[a-z]$", sUserAgentList
UA_Add "(^|\s)RPT-HTTPClient/\d\.\d-\d$", sUserAgentList
UA_Add "^sitecheck\.internetseer\.com\s\(For\smore\sinfo\ssee:\shttp://sitecheck\.internetseer\.com\)$", sUserAgentList
UA_Add "^vspider$", sUserAgentList
UA_Add "^k2spider$", sUserAgentList
UA_Add "^Mac\sFinder\s", sUserAgentList
UA_Add "^ICU\sv", sUserAgentList
UA_Add "^DART$", sUserAgentList
UA_Add "^Mozilla/\d\.\d\s\(compatible;\sMSIE\s\d\.\d;\sWindows\sNT\s\d\.\d;\sQ\d{6};\s\.NET\sCLR\s\d\.\d\.\d{4}$", sUserAgentList
UA_Add "^COMBOMANIA$", sUserAgentList
UA_Add "^MyCrawler$", sUserAgentList
UA_Add "^Mozilla/\d\.\d\s\(compatible;\sWin32;\sWinHttp\.WinHttpRequest\.\d\)$", sUserAgentList
UA_Add "^WEP\sSearch\s\d+$", sUserAgentList
UA_Add "^Mozilla/\d\.\d\s\(fantomBrowser\)$", sUserAgentList
UA_Add "^TE$", sUserAgentList
UA_Add "^WebStripper/\d\.\d\d$", sUserAgentList
UA_Add "^OWR_Crawler\s\d\.\d$", sUserAgentList
UA_Add "^WebMiner/\d\.\d\s\[en\]\s\(Win\d\d;\sI\)$", sUserAgentList
UA_Add "^WebGather\s\d\.\d$", sUserAgentList
UA_Add "^readwebpage$", sUserAgentList
UA_Add "^InstantSSL\sBrowser:\slow\scost\sfully\svalidated\sSSL\s\+\sfree\strial$", sUserAgentList
UA_Add "^Mozilla/\d\.\d\s\(compatible;\sHTTrack\s2\.0x;\sWindows\s.+\)$", sUserAgentList
UA_Add "^Mozilla/4\.0\s\(compatible;\sPowermarks/\d\.\d;\sWindows\s.+\)$", sUserAgentList
UA_Add "^Vivante\sLink\sChecker\s\(http://www\.vivante\.com\)$", sUserAgentList
UA_Add "^Mozilla/\d\.\d\s\(compatible;\sWindows\sNT\s\d\.\d;\sABN\sAMRO$", sUserAgentList
UA_Add "^Mozilla/\d\.\d\s\(compatible;\sIntelliseek;\shttp://www\.intelliseek\.com\)$", sUserAgentList
UA_Add "^WebCopier\sSession\s\d$", sUserAgentList
UA_Add "^Mozilla/\d\.\d\s\(compatible;\sMSIE\s\d\.\d\d;\sWindows\s\d\d$", sUserAgentList
UA_Add "^Art-Online\.com\s\d\.\d\(Beta\)$", sUserAgentList
UA_Add "^WebGo\s", sUserAgentList
UA_Add "^SuperBot/\d\.\d\s\(Win\d\d\)$", sUserAgentList
UA_Add "^Download\sNinja\s\d\.\d$", sUserAgentList
UA_Add "^Mozilla/\d\.\d\s\(compatible;\sMSIE\s\d\.\d;\sWindows\sNT\s\d\.\d;\s\.NET\sCLR\s\d\.\d\.\d{4}$", sUserAgentList
UA_Add "^Expired\sDomain\sSleuth$", sUserAgentList
UA_Add "^SHARP-TQ-GX\d\d$", sUserAgentList
UA_Add "^HTTP/\d\.\d\sMozilla/\d\.\d\+\(compatible;\+MSIE\+\d\.\d;\+Windows\+NT\+\d\.\d\)$", sUserAgentList
UA_Add "^.+/\d+\.\d+\s\(Version:\s\d+\sType:\d+\)$", sUserAgentList
UA_Add "^Offline\sExplorer/\d+\.\d+$", sUserAgentList
If sUserAgentList = vbNullString Then
sUserAgentList = "^nulldata$"
End If
BadUA_Test = TestRegExp(sUserAgent, sUserAgentList)
End Function
Function BadIP_Test( ByVal sIPAddr )
Dim sIPList
BadIP_Test = False
'Assemble the list
'UA_Add "^127\.0\.0\.1$", sIPList 'Block a single IP, 127.0.0.1
'UA_Add "^127\.0\.0\.", sIPList 'Block any IP starting with 127.0.0.
'UA_Add "^127\.0\.", sIPList 'Block any IP starting with 127.0.
If sIPList = vbNullString Then
sIPList = "^nulldata$"
End If
BadIP_Test = TestRegExp( sIPAddr, sIPList )
End Function
'--testando code--
'DenyCrawler()
'Response.Write "Se você pode ver isso seu script funciona e se você não estiver listado como um IP ruim ou UA."
'--testando code--
%>

Help










