Tout le monde le sait, les robots indexeurs IA font n’importe quoi, en plus ils passent par des proxy pour avoir plein d’adresse IP différentes et camoufler leur traffic. C’est très relou. Le service Git public en souffre le plus car il a un très grand nombre de pages à explorer. J’avais temporairement bloqué tout le traffic vers git.club1.fr, mais ça rend le service inutilisable.
Pour rigoler un peu j’ai tenté de faire un « honey pot ». C’est un superbe script PHP qui se combine avec le filtre Fail2ban mis en place dans Blocage des requêtes HTTP provenant de certains bots #246 :
<!DOCTYPE html>
<html>
<body>
<h1>Pot de miel</h1>
<p>Cliquer sur un lien bannit votre IP du serveur pendant 24h.</p>
<pre>
<?php
sleep(1);
$id = substr($_GET['id'] ?? '1', 0, 40);
$engine = new \Random\Engine\PcgOneseq128XslRr64(md5($id, true));
$random = new \Random\Randomizer($engine);
for ($i = 0; $i < 20; $i++) {
$id = bin2hex($random->getBytes(20));
echo "<a href=\"?id=$id\">$id</a>\n";
}
?>
</pre>
</body>
</html>
En gros ça permet de générer pas loin de 2^128 pages, avec un petit sleep de 1 seconde pour la blague. Avec l’option header de cgit j’ai ajouté un lien invisible dans chaque page vers /potdemiel/. Et avec le filtre Fail2ban, chaque IP qui fait 2 requêtes sur cette page se fait bannir pendant 24h.
Par exemple, voilà la page que ça génère quand id est vide (où chaque ligne de hash est en fait un lien) :
Pot de miel
Cliquer sur un lien bannit votre IP du serveur pendant 24h.
f07a1cd5d87ca532559c339e07e88b45a7bd1ae5
979fd631a093a195718123bb42e525e356dbd3be
f1aac8018c8da2845ad3233faf937442c612ffb4
95292f788c07fe5eb18b79433d8f1a236fdf0e58
6b9647d4b5e4fe3e599c2ce967fc24502b8bebab
5beb3125db4cfb6cc1c4b171dfb01d55511bae0a
ed2b00c3fc7c8c5ac17e68a2bc360727b66cbdd6
3872dfede4e5dd801d46d679ba7207ac9a993cea
fec2c3e52494912dc0973f655cceb3c4a5aab6a9
7e623a5b1f482b8881bc62f6339db8b99699a8ed
de703ccff37100f1d0f1ddb1974058bc560fb4b3
b2b824b2127414b5cee0b1b35729e8fcde5c586d
12802c3e5b8f2859075c98a56de196d842f3c178
605fa4239fc307cc83259e38cb4f80d64f348235
69fd2553fbcdb3893b688824185e60e305f74018
a0a55c5b61ebd3303c7c76f99f564c62c50aff09
12588088812e03920c4c9dc7dbb40333b08cb990
6ccccab6c63e5fd3fb1f8a068df729375c0e5787
1d2b4dd5bbc5041e4feb6bc612f1777fb6467b79
7860a6a46a95fc46d11e650bc032bb9a59822477
Je sais pas du tout ce que ça va donner, mais j’étais curieux de tester.