ASPcenter.net

1 marzo 2010

Impedire il download dei siti su browser offline (crawling) con ASP

Archiviato in: ASP e Sicurezza — Tag:, — lukeonweb @ 14:58

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:

&lt%@LANGUAGE = VBScript%>
&lt%
    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)
%>
&lthtml>
...

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.

Nessun commento »

Non c'è ancora nessun commento.

RSS feed dei commenti a questo articolo. TrackBack URL

Lascia un commento

ASPcenter.net è il blog italiano su ASP, ASP.Net, VB.Net, C# e Visual Studio - Funziona con WordPress