E’ ormai nota a tutti l’esistenza di programmi in grado di scaricare interi siti che consentono all’utente la navigazione offline (direttamente sul proprio computer) come Teleport PRO, Openbot, WebCopier, Webzip, HTTrack, Ecatch, e cosi via.
Questi software rescono a scaricare perfettamente codici HTML, CSS, Javascript, immagini e qualsiasi elemento di una pagina Web lato client.
Per un motivo o per un altro (e di motivi ce ne sono molti) la cosa può risultare fastidiosa. Vediamo quindi come impedire il crawling del nostro sito.
Quando un normale browser Web, uno spider di un motore di ricerca, o uno di questi software per il crawling visitano una pagina Web, non possono fare a meno di comunicare al server il proprio USER_AGENT.
Ogni pagina ASP che non desideriamo venga scaricata deve contenere un controllo che verifica l’USER_AGENT comunicato al server e, se indesiderato, verrà inibito.
Vediamo dunque un codice di esempio:
<%@LANGUAGE = VBScript%>
<%
Dim a, agente, agenti(5)
a = 0
agente = LCase(Request.ServerVariables("HTTP_USER_AGENT"))
Function NoCrawling(agente)
agenti(0) = "teleport"
agenti(1) = "ecatch"
agenti(2) = "webcopier"
agenti(3) = "openbot"
agenti(4) = "webzip"
For a = 0 To Ubound(agenti)
If agenti(a) = agente Then
Response.Write "Impossibile scaricare la pagina!"
Response.End
End If
Next
End Function
Call NoCrawling(agente)
%>
<html>
...
Lo script è semplice: recuperiamo l’USER_AGENT e lo passiamo come parametro ad una funzione che raccoglie in un array i nomi degli USER_AGENT indesiderati.
Effettuiamo poi un ciclo sull’array e, se si verifica una corrispondenza nei nomi, lanciamo un messaggio di avviso e terminiamo l’esecuzione della pagina.
