script anti-spam robots et anti-pirates...

WRInaute discret
Non, je ne l'ai pas encore fait, mais j'ai une idée de comment le faire.

NB : j'ai édité ce post pour inclure les corrections suggérées par Qaghan

c'est le script de renardrouge qui m'a donner cette idée, j'ai fait mes recherches et je pense qu'en améliorant l'idée développée ici : http://five2one.org/djc/articles/Stoppi ... ts_II.html

on peut faire un truc sympa.

Voici comment ça pourrait marcher :

pour le filtre anti spamBots, je n'ai pas réinventer la roue, je pense utiliser la technique du honey-pot décrite dans l'article ci-dessus (en légèrement mieux) :

Dans le robots.txt j'insère la ligne suivante :
User-agent: *
Disallow: /email-addresses/

c'est mon apât...

ensuite dans mon httpd.conf j'insère une condition du genre :

Code:
RewriteCond /var/www/myroot/web/%{REQUEST_FILENAME} !-d
RewriteCond /var/www/myroot/web/%{REQUEST_FILENAME} /email-addresses/
# la syntaxe de la regex est sans doute fauuse, j'suis pas un cador, c'est juste pour donner l'idée
RewriteRule ^(.+)  /usr/lib/cgi-bin/ban.pl  [L]
# là j'ai choisis le nom d'un cgi mais le script  peut-être fait dans un autre langage

et hop tous les curieux qui vont voir dans le répertoire email-addresses lancent le script de ban :twisted:
c'est la qu'est l'amélioration car dans l'exemple le script n'est pas lancé au moment de la requête mais à intervalle fixe (donc un robot à le temps de faire du dégat avant d'être bannit)

évidemment on peut utiliser d'autres appâts du style un lien invisible sur la home page :
<a href="email-addresses/our_mails.htm">write to us</a>
(et comme le répertoire est interdit aux robots, aucun risque de bannir google et les robots honnêtes)

et que fait ban.pl (ou ban.php)? et Bien il update le fichier .htaccess qui se trouve à la racine du site et dans lequel les adresses IP sont bloquées grâce à la directive Deny...

résultat : cette ip est bloquée directement(reste à voir les modalités pour la débloquer, au bout de n minutes par exemple)


La même méthode s'applique pour les pirates (les plus cons il est vrai).

j'ai remarqué dans mes stats que j'avais beaucoup d'erreur 404 sur des fichiers du type :
/scripts/..%255c../winnt/system32/cmd.exe
/MSADC/root.exe
/MSOffice/cltreq.asp
ou encore...
/_vti_bin/owssvr.dll

des failles de windows donc...

et hop en ajoutant quelques conditions dans le genre :

Code:
RewriteCond /var/www/myroot/web/%{REQUEST_FILENAME} !-f
RewriteCond /var/www/myroot/web/%{REQUEST_FILENAME} .root\.exe. [OR]
RewriteCond /var/www/myroot/web/%{REQUEST_FILENAME} .cltreq\.asp. [OR]
RewriteRule ^(.+)  /usr/lib/cgi-bin/ban.pl  [L] #


hop à dégagé aussi :evil:


evidemment l'idéal c'est d'entrer dès le début une liste d'IP de robots indélicats, comme ça cette méthode ne sert qu'à la compléter et dans ces conditions il ne devrait pas y avoir de problème de perfs

z'en pensé quoi?
 
WRInaute discret
duch a dit:
et que fait ban.pl? et bien il fait exactement ce que fait celui de l'article, il update un fichier badbots.txt qui contient une liste d'adresse IP à bloquer et qui est en include dans httpd.conf et il relance apache...

Ils sont plutot rares les hebergements mutualises qui permettent de relancer apache ? ;-)

Inserer ces IPs dans un fichier htacess sous la directive DENY serait peut-etre un peu plus universel non ?

Olivier,
 
WRInaute discret
Gros edit :

effectivement c'est beaucoup plus simple en updatant directement un fichier .htaccess se trouvant à la racine du serveur :wink:

tu vois c'est encore mieux :D


NB : je vais éditer mon premier post :D
 
WRInaute discret
tout à fait, c'était le sens de ma remarque :

# là j'ai choisis le nom d'un cgi mais le script peut-être fait dans un autre langage

:p

sinon ça te semble une bonne idée? L'avantage c'est qu'en plus en y réfléchissant 5 minutes avec l'astuce du lien caché (mais pas pour les robots) ça nique tous les robots indélicats :D


Update :

pour les performances on peux faire mieux en mettant les règles de ré-écriture dans le répertoire d'appât (qui doit donc cette fois ci existeé) du coup y'a pas de règle pour l'ensemble du site

il commence à me plaire ce script, je sens que je vais le faire et écrire un article dessus histoire d'améliorer mon positionnement :D
 
WRInaute passionné
Salut Duch,

L'idée est bonne. Je vois un problème possible comme les robots ne demandent pas le fichier robots.txt à chaque fois... ils risquent de tomber dans le piège.
Et balancer des 403 forbidden involontaires à GoogleBot, je n'aimerais pas :lol: (pas plus à Inktomi ou Fast, d'ailleurs)
Ce serait bien de vérifier tout de même si c'est un robot "honnête" dans le script, histoire de ne pas faire de conneries. Quelques fractions de seconde de plus n'ont pas d'importance pour un script qui ne devrait en toute logique ne s'exécuter qu'une fois par robot "indélicat"

En fait, en créant un répertoire /email-adresses/ avec un fichier index.php dedans, tu n'as même pas besoin de réécriture, si ton index.php fait ce qu'est supposé faire ton cgi :wink:


Dan

PS: l'article est une bonne idée. Une fois fait, poste un message sur WRI et tu verras arriver les liens spontanés. J'en ai eu une floppée avec mon article sur le PageRank, jusqu'au Canada :wink:
 
WRInaute discret
l'article c'était une boutade...

mais peut-être si j'ai le temps.


J'avais penser au problème que tu soulève et je pensais procéder en deux étapes :
1. créer le répertoire et l'interdire grâce au robots.txt
2. mettre le script en place une à 2 semaines plus tard (et de préférence une fois que Google l'a vu)

mais je peux faire un test sur le user agent des robots légitimes aussi, puisque ceci ne se cachent pas.
 
WRInaute discret
Les robots indésirables sont de toutes sortes :

- les spambots, qui scannent les sites à la recherche d'emails à spammer
- les robots qui servent à pomper du contenu
- les robots qui sont supposés surveiller les problèmes de droits d'auteurs
- certains aspirateurs de site
...

et la liste est très longue.

Le script que je propose ne bloquera pas tous ces robots, il ne bloquera que les robots qui ne respectent pas le "robots exclusion standard" (en ne respectant pas les directives du robots.txt), mais ces robots sont les pires, donc c'est déjà pas mal.



j'en profite pour corriger mon dernier post. C'est con de faire un test sur le user agent pour éviter de bloquer les robots des vrais moteurs, puisque les badbots peuvent se faire passer pour des gentils.
 
L
LT-P
Guest
duch a dit:
j'ai remarqué dans mes stats que j'avais beaucoup d'erreur 404 sur des fichiers du type :
/scripts/..%255c../winnt/system32/cmd.exe
/MSADC/root.exe
/MSOffice/cltreq.asp
ou encore...
/_vti_bin/owssvr.dll
Le problème est que ces connexions sont faites par des machines infectées par virii.
Les propriétaires des ces machines sont très souvent des particuliers avec l'ADSL, et donc une IP dynamique.

À force, cela revient à bannir tout plein de gens, et pas forcément les bons (puisque les IP tournent).
À la fin, on se retrouve avec une liste monstrueuse, des gens frustrés et un problème non-résolu :/
 
Discussions similaires
Haut