--- title: "PerishablePress : Blackhole pour les mauvais robots" date: 2017-07-23T21:42:02+02:00 draft: false lastmod: 2017-07-29T22:17:58+02:00 tags: ['nginx', 'PerishablePress', 'Blackhole', 'block'] --- ## Description Jeff Starr de PersishablePress vient de publier son [plugin de sécurité pour WP][1], nommé [Blackhole for BadBots][2]. L'idée de départ intéressante est, dû au fait que les robots scrutateurs du web ne respectent pas tous la déclaration du fichier `robots.txt`… C'est d'ailleurs pour cette raison qu'ils sont appelés "BadBots" ou "mauvais robots". Puisque ces mauvais robots ne respectent rien, on va les piéger, puis bloquer leurs adresses IP ! ## Installation Commençons par télécharger la dernière mouture des scripts PHP :
https://perishablepress.com/blackhole-bad-bots/#blackhole-download Une fois l'archive décompressée, ouvrez le script `index.php`, et remplissez/modifiez correctement les valeurs des variables `$from`, `$recip`…
enregistrez la modification. Pensez à modifiez l'url de contact, en lignes 206 et 229 ; et, idem pour le script `blackhole.php` en ligne 56. Dans votre site, créez un répertoire `blackhole`, dans lequel vous déposerez les fichiers blackhole, précédemment téléchargés -
*bien sûr, pas besoin du fichier `.htaccess`* Mettez des droits 0600 sur le fichier `blackhole.dat`, si votre serveur permet cette gestion fine… ## Configuration Ensuite, modifiez vos scripts PHP de cette manière - *oui, là, c'est un peu la contrainte !* : * Dans votre code source PHP, rajoutez cette déclaration suivante - *si possible, avant tout code html… voire tout autre code PHP* :
`include(realpath(getenv('DOCUMENT_ROOT')) .'/blackhole/blackhole.php');` * Toujours dans le code source PHP, rajoutez la suivante, où vous voulez, mais le plus probablement dans ce qu'on appelle le 'footer' :
`NE PAS Suivre ce lien où vous serez bannis - interdits d'accès - à ce site !` * Puis, terminez par rajouter cette déclaration dans votre fichier `robots.txt` :
`Disallow: /blackhole/` Maintenant, modifions le fichier de configuration de votre serveur nginx pour ajouter cette déclaration `location` : {{< code "web-nginx-perishable-press-blackhole-location" nginx >}} Puis, pensez à tester votre configuration nginx, et redémarrez votre serveur ! Vous obtiendrez ainsi une belle erreur 404, si le fichier est appelé… --- À partir de maintenant, quand un mauvais robot, ou quelqu'un cherchera à pointer sur le répertoire `blackhole`, et/ou un de ses fichiers, il sera blacklisté, puis quand il reviendra, il ne lui sera pas permis d'avoir accès au site web… Le script vous enverra un mail ; si vous ne voulez pas en recevoir, éditez le script `index.php`, et mettez en commentaire PHP la ligne 226, commençant ainsi :
`//mail($recip, $subject, $message, 'From: '. $from);` Il existe d'autres options modifiables ; là, je vous renvoie au site [PerishablePress][2] ! --- **Version modifiée** Retrouvez la [version modifiée sur mon espace git][3], ainsi que l'[archive ZIP correspondante][4] ! L'auteur est informé ; j'espère qu'il intégrera mes modifications ;-) --- [1]: https://perishablepress.com/new-plugin-blackhole-bad-bots/ [2]: https://perishablepress.com/blackhole-bad-bots/ [3]: https://framagit.org/hucste/tools/tree/master/blackhole [4]: https://framagit.org/hucste/tools/raw/master/blackhole/blackhole.modified.zip ---