it-swarm.dev

Impedisci ai robot di ottenere il contenuto del sito / articolo

Questa non è una domanda sugli indicizzatori, molti dei quali obbediscono al file robots.txt .

Ma forse hai notato casi pubblicizzati in cui Facebook o Skype ha seguito l'URL pubblicato da utenti o che sono stati inviati tramite messaggio istantaneo privato utilizzando queste piattaforme. Credo che questi due non siano (o presto non saranno) soli a farlo.

Il problema è che la loro visita a un URL specifico non deve necessariamente obbedire robots.txt e potrebbero eseguire il "backup" del testo che vedono. Anche se gestisco siti abbastanza standard (organizzazioni senza scopo di lucro, hobby, blog), non mi piace questo "ultimo strumento di marketing" (questo è stato il miglior presupposto di cosa si tratti). Pertanto sto pensando a un modo elegante per evitare che un tale sniffing/crawling provenga da questi siti dopo aver ottenuto il collegamento. Qualcosa di simile a

  • l'intera pagina non viene visualizzata fino a quando non viene superato un test umano (quindi viene impostato un cookie, quindi non è più necessario) - OR -

  • il sito è accessibile (è presente una pagina con tutti i moduli ecc., nessun problema con i titoli degli articoli pubblicati in essi) ma il contenuto dell'articolo principale (com_content) è inizialmente vuoto e auto-sostituito usando Ajax a breve

Hai idee su come implementare la prevenzione contro questi crawler in modo che non ottengano alcun/alcuni contenuti dell'URL del tuo sito che hanno visitato?

5
miroxlav

Non esiste una soluzione semplice, perché i robot hanno comportamenti diversi. Le dividerei in 4 categorie e soluzioni per ciascuna:

  1. Crawler legittimi (ad es. Google): di solito rispettano robots.txt e, come hai detto, non ti interessano.

  2. Scrappers legittimi (ad es. Facebook): di solito hanno l'agente utente corretto, quindi puoi bloccarli in base a quello (l'agente utente).

  3. Crawler che non rispettano robots.txt - il modo più semplice è creare un link invisibile (per gli umani) sulla tua pagina, metterlo rel = nofollow (per non avere problemi con i crawler legittimi) a quel link. Il collegamento dovrebbe essere diretto a una pagina in cui registrerai IP, UA e cose simili del crawler. Quindi puoi implementare un controllo su quel registro e se c'è una corrispondenza, semplicemente non dovresti il ​​contenuto.

  4. Uno degli scrappers - simile a Facebook, ma con un falso agente utente. L'unica soluzione praticabile è verificare il supporto dei cookie, ma non è garantito al 100% che funzionerà. Bloccherà anche gli utenti che hanno disabilitato i cookie.

3
Ivo

Un metodo sarebbe quello di bloccare gli accessi dai crawler, sebbene ciò dipenda dalla possibilità di identificarli.

Il seguente articolo contiene alcuni buoni esempi di come migliorare la sicurezza di Joomla.

http://docs.joomla.org/Htaccess_examples_%28security%29

Un metodo consiste nell'utilizzare l'attributo HTTP_REFERER per bloccare l'accesso, ad esempio, alle immagini, a meno che non vengano caricate da una pagina del tuo sito.

Un altro è utilizzare l'attributo HTTP_USER_AGENT per bloccare l'accesso a determinati motori.

Per determinare le stringhe HTTP_USER_AGENT aggiuntive, è necessario ispezionare i log di accesso oppure, ciò che ho fatto in un'occasione è modificare l'estensione di reindirizzamento per aggiungere HTTP_USER_AGENT nel commento.

3
Peter Wiseman

Se non desideri che i contenuti siano accessibili pubblicamente, utilizza l'ACL di Joomla per limitare l'accesso, rimuovendo l'accesso per il gruppo utenti predefinito (pubblico). Se non lo fai, o qualcosa di simile, il tuo contenuto è pubblico, le persone possono vederlo, i robot possono vederlo.

Se non desideri che i tuoi contenuti vengano visualizzati da nessuno, non pubblicarli nel mondo. Se lo pubblichi nel mondo, non avrai molto da dire su chi lo vede.

3
Seth Warburton