---
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
---