Come deindicizzare URL da Google dopo un attacco hacker?
Se avete subito di recente un attacco hacker, avrete notato molte URL di troppo su Google, create per riempire di spam in massa l'indice del motore di ricerca.
Se avete subito di recente un attacco hacker, avrete notato molte URL di troppo su Google, create per riempire di spam in massa l'indice del motore di ricerca.
Prerequisito: ripulire il proprio WordPress
Non è chiaramente l'oggetto di questo articolo, ma è importante cominciare ripulendo l'FTP e la base di dati.
Idealmente, ripartite da una base di file e dati sana risalente a prima dell'attacco (da qui l'importanza di fare backup) e assicuratevi di correggere la falla che aveva permesso al pirata di entrare. Approfittatene per cambiare le password (come minimo quelle degli utenti del back office e di MySQL).
L'idea qui è evitare che l'incidente possa ripetersi qualche giorno dopo.
Identificare il formato del "pattern" delle URL piratate
Il punto in comune di molti sistemi di spam automatico è generare URL che si somigliano tutte più o meno. Con questo intendiamo che il contenuto dello slug risponde a una regola che si può riprodurre con un'espressione regolare. Vedo quelli in fondo che cominciano a sudare: ebbene sì, scriveremo delle regex, ma resteremo sul semplice.
Per trovare questo pattern, cominciamo facendo un site: su Google. Come promemoria, il comando site:nome-di-dominio restituisce tutte le URL del sito che sono indicizzate. Esempio: site:swan.tools

elenco di URL piratate su Google con il comando site:
Nell'esempio di questo sito, troviamo per esempio queste URL:
- https://nom-de-domaine.fr/conmrixzp741732
- https://nom-de-domaine.fr/ctuuc961439
- http://nom-de-domaine.fr/haxfwcowv6881
- http://nom-de-domaine.fr/chlwfzkle658271
- http://nom-de-domaine.fr/fjsxt794539
- http://nom-de-domaine.fr/ngogtvudqw9573192
L'elenco naturalmente non è esaustivo e ho volutamente cambiato alcune lettere perché non possiate identificare troppo facilmente lo sfortunato proprietario che ha gentilmente accettato di prestarmi il suo caso per questo tutorial.
Notiamo qui che l'URL (slug) di ogni pagina piratata comincia con una serie di lettere seguita da una serie di cifre. Ecco, questo è un pattern (semplicemente).
A partire da qui cercheremo di identificare le variazioni trovando una regola che non copra le URL legittime del nostro sito internet, ma qui non dovrebbero esserci problemi.
Nel nostro caso, identifichiamo che l'URL comincia con 5-10 lettere seguite da una serie di 4-7 cifre a seconda delle URL.
La nostra espressione regolare sarà quindi questa:
^[a-z]{5,10}\d{4,7}$
Da notare che potete allargare gli intervalli del numero di caratteri finché non c'è il rischio di intercettare una URL legittima del vostro sito.
Preparare la regola di reindirizzamento per Apache
Prepareremo qui una regola che avrà due effetti:
- Indicare a Google che la pagina è scomparsa
- Chiedere a Google di non conservare questa pagina nel suo indice
RewriteRule ^[a-z]{5,10}\d{4,7}$ - [E=NOINDEXNOFOLLOW,G]
Header always set X-Robots-Tag "noindex, nofollow" env=NOINDEXNOFOLLOW
Se queste righe non funzionano (come per esempio sul cPanel di un noto hosting francese), bisogna aggiungere la definizione del documento 410 all'inizio del file, il che dà questo:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
ErrorDocument 410 default
RewriteRule ^[a-z]{5,10}\d{4,7}$ - [E=NOINDEXNOFOLLOW,G,END]
Header always set X-Robots-Tag "noindex, nofollow" env=NOINDEXNOFOLLOW
</IfModule>
Nella prima riga ritroviamo la nostra regex per identificare le URL interessate; poi, come vedete, non indichiamo un'URL di reindirizzamento ma un semplice "-", che, abbinato alla lettera G nella parte dei flag a destra, permette di dire che l'URL è Gone. È il famoso codice 410, che indica che l'URL non tornerà mai e non è reindirizzata. Il flag E= serve qui a definire una variabile d'ambiente che chiamiamo (l'etichetta qui è arbitraria) NOINDEXNOFOLLOW; avremmo potuto chiamarla toto e funzionerebbe altrettanto bene.
Nella seconda riga indichiamo che inviamo comunque un'intestazione HTTP X-Robots-Tag "noindex, nofollow", che agirà come un meta robots nell'head dell'HTML. Solo che qui non abbiamo bisogno di modificare il codice sorgente del sito.
Idealmente dovrete quindi collocare queste 2 righe all'inizio del vostro file .htaccess, subito dopo la riga RewriteEngine On.
Se volete andare oltre, per esempio accelerando la presa in carico, potete creare una sitemap completa di queste URL o una mappa del sito HTML seguendo per esempio questo tutorial su come accelerare la presa in carico di un piano di reindirizzamento. Per limitare il rischio di un nuovo attacco, vedete anche come riconoscere un sito sicuro e la nostra guida al protocollo HTTPS.