Bloquez toutes les demandes inutiles que vous voyez dans les journaux
Je suppose que vous avez consulté les journaux des visiteurs de votre site web et que vous en avez assez de ces demandes indésirables. Il ne s’agit pas nécessairement de mauvaises requêtes ou de spam, mais elles n’apportent pas de valeur ajoutée à l’entreprise. Imaginez que la majorité des visites proviennent de cet agent utilisateur ou de ces référents indésirables et que vous pensiez que votre site reçoit un bon trafic, alors qu’en réalité, ils sont inutiles.
La meilleure façon de les gérer est de les arrêter à la périphérie, par exemple au moyen de dispositifs réseau, d’un équilibreur de charge, d’un pare-feu ou d’un réseau de distribution d’énergie. Mais je comprends que ce n’est peut-être pas faisable pour un blogueur personnel ou un petit site web, et vous voudrez peut-être les bloquer à un niveau inférieur, comme les serveurs web, WordPress, etc.
J’espère que vous avez déjà une liste de référents et d’agents utilisateurs que vous souhaitez bloquer. Commençons.
Comme meilleure pratique, prenez une sauvegarde du fichier de configuration avant de le modifier afin de pouvoir revenir en arrière si les choses tournent mal.
Nginx
Nginx alimente des millions de sites et est très populaire parmi les hébergeurs web. Si vous utilisez Nginx, voici comment vous pouvez les arrêter. Supposons que vous receviez de nombreuses requêtes automatisées avec l’agent utilisateur suivant et que vous ayez décidé de les bloquer.
- java
- curl
- python
if ($http_user_agent ~* "java|curl|python") {
retournez 403 ;
}
Si vous souhaitez qu’ils soient redirigés quelque part, alors.. :
if ($http_user_agent ~* "java|curl|python") {
retournez 301 https://yoursite.com ;
}
La configuration ci-dessus doit se trouver sous le bloc serveur
.
Et la suivante pour bloquer par referrers. L’exemple suivant doit être placé sous le bloc location
pour bloquer les requêtes provenant de semalt.com, badsite.net, example.com.
if ($http_referer ~ "semalt\com|badsite\.net|example\.com") {
retournez 403 ;
}
Après avoir effectué les modifications nécessaires, vous devez enregistrer le fichier et redémarrer Nginx pour qu’il prenne effet.
Pour redémarrer Nginx, vous pouvez utiliser le service nginx :
service nginx restart
Nginx est un serveur web puissant et si vous souhaitez l’apprendre, consultez ce cours en ligne.
Apache HTTP
Pour bloquer le user-agent dans Apache, vous pouvez utiliser le module mod_rewrite
. Assurez-vous que le module est activé et ajoutez ce qui suit dans le fichier .htaccess
ou dans le fichier .conf
correspondant.
Si vous avez configuré plusieurs sites et que vous souhaitez bloquer une URL spécifique, vous pouvez les placer dans la section VirtualHost
correspondante.
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} badcrawler [NC,OR]
RewriteCond %{HTTP_USER_AGENT} badbot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} badspider [NC]
RewriteRule . - [R=403,L]
La règle ci-dessus bloquera toute requête contenant des user-agent comme badcrawler, badbot et badspider.
L’exemple ci-dessous bloque les requêtes contenant les noms de référence BlowFish, CatchBot, BecomeBot.
RewriteEngine on
RewriteCond %{HTTP_REFERER} blowfish|CatchBot|BecomeBot [NC]
RewriteRule . - [R=403,L]
Comme d’habitude, redémarrez le serveur Apache et testez les résultats.
WordPress
Si vous utilisez WordPress sur un hébergement partagé, si vous n’avez pas accès à la configuration du serveur web ou si vous n’êtes pas à l’aise pour modifier le fichier, vous pouvez utiliser le plugin WP. Il existe de nombreux plugins de sécurité WP, et l’un des plus populaires pour bloquer les robots malveillants est Blackhole for Bad Bots.
Conclusion
J’espère que les conseils ci-dessus vous aideront à bloquer les mauvais bots afin que les requêtes légitimes ne soient pas affectées. Si vous recherchez une protection de sécurité complète, vous pouvez également envisager d’utiliser un WAF basé sur le cloud comme Astra ou SUCURI.