Aller au contenu

Script pour bloquer aspirateur de site


hikaru59

Sujets conseillés

Salut,

Mon site mangaluxe.com a été victime de plagiat.

Voir ce sujet pour plus de détail : http://www.webmaster-hub.com/index.php?showtopic=42364

Après avoir consulté les statistiques internes détaillées, j'ai découvert l'adresse IP de la personne qui a plagié intégralement mon site en utilisant un aspirateur de site. Il a envoyé beaucoup de requêtes. Voici une des requêtes :

83.113.3.*** - - [16/Jul/2008:13:19:14 +0200] "GET /dossiers/death-note/img/death-note-movie6b.jpg HTTP/1.1" 200 49336 www.mangaluxe.com  "Mozilla/4.5 (compatible; HTTrack 3.0x; Windows 98)" "-"

Son IP est 83.113.3.*** . Il est chez wanadoo marseille. Il a donc un IP dynamique. Et il a utilisé l'aspirateur de site appelé httrack.

httrack est reconnu comme un navigateur. J'aimerais savoir s'il y a un moyen de bloquer httrack.

Je sais que le script permettant d'afficher le nom du navigateur est :

<?php
$navigateur = $_SERVER["HTTP_USER_AGENT"];
echo $navigateur;
?>

Modifié par hikaru59
Lien vers le commentaire
Partager sur d’autres sites

Je ne suis pas un pro du développement, d'autres te répondront...

Mais en attendant voici un 'anti aspirateur' universel, ici : http://www.webmaster-hub.com/publication/article49.html

Le problème des aspirateurs est qu'ils pompent le site, l'autre problème est qu'ils pompent les ressources, en récupérant un grand nombre de pages, en très peu de temps. Ce script permet d'y faire face.

Lien vers le commentaire
Partager sur d’autres sites

J'ai peut-être réussi à trouver :

<?php
$navigateur = $_SERVER["HTTP_USER_AGENT"];
$bannav = Array('HTTrack','httrack','nom-de-aspirateur'); // Si le navigateur contient un de ces mots, on le bannit
foreach ($bannav as $banni)
{ $comparaison = strstr($navigateur, $banni);
if($comparaison!==false)
{
echo 'Aspirateur interdit !';
exit;
}
}
?>

Explication :

$navigateur = $_SERVER["HTTP_USER_AGENT"]; permet d'afficher le nom du navigateur.

L'aspirateur HTTrack est vu comme un navigateur.

Je vais tester avec l'aspirateur httrack sur mon propre site, je vous dirai si cela marche.

Modifié par hikaru59
Lien vers le commentaire
Partager sur d’autres sites

C'est bon ! Ca marche !

J'ai également mis à jour la liste d'aspirateurs :

<?php
$navigateur = $_SERVER["HTTP_USER_AGENT"];
$bannav = Array('HTTrack','httrack','WebCopier','HTTPClient'); // liste d'aspirateurs bannis
foreach ($bannav as $banni)
{ $comparaison = strstr($navigateur, $banni);
if($comparaison!==false)
{
echo '<center>Aspirateur interdit !<br><br>Votre IP est :<br>';
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
echo '<br>';
echo $hostname;
echo '</center>';
exit;
}
}
?>

Lien vers le commentaire
Partager sur d’autres sites

Inutile, la plupart des aspirateurs ont la possibilité d'avoir le user agent d'ie, firefox... le lien de Regis est à mon avis plus interessant puisqu'il se base sur un nombre de hits pour un laps de temps donné

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Je pense qu'il y a plusieurs techniques :

- Technique 1 : blocage par PHP (il y a des scripts qui ajoute un cookie ou inscrivent l'IP dans une BDD pour le bloquer + tard)

- Technique 2 : blocage via .htaccess (peut être une très bonne technique ? Cela consomme moins de ressources que via PHP) ... chercher sur le Hub, ça a déjà été demandé

- Technique 3, dite "technique de l'anguille" : Accepter l'aspirateur mais ajouter à plein d'endroits de la page du texte, des backlinks (variés), ou d'autres choses pour pourrir le code et le rendre inexploitable ... probablement la meilleure car très décourageante, surtout si tu varies la technique pour éviter qu'il trouve la parade via un regex sur les fichiers téléchargés :) ...

voili voilou. S'il ne fallait en garder qu'une seule, c'est la technique 2, car tu peux la copier coller dans les .htaccess sur tous tes sites

Lien vers le commentaire
Partager sur d’autres sites

Le plus simple, avec un .htaccess, serait ceci (à modifier pour ajouter d'autres aspirateurs)

RewriteCond  %{HTTP_USER_AGENT}  wget [NC,OR]
RewriteCond %{HTTP_USER_AGENT} Gigabot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} Xenu\ Link\ Sleuth [NC,OR]
RewriteCond %{HTTP_USER_AGENT} larbin [NC,OR]
RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR]
RewriteCond %{HTTP_USER_AGENT} PhpDig [NC,OR]
RewriteCond %{HTTP_USER_AGENT} WebCopier [NC,OR]
RewriteCond %{HTTP_USER_AGENT} LWP::Simple [NC,OR]
RewriteCond %{HTTP_USER_AGENT} libwww [NC,OR]
RewriteCond %{HTTP_USER_AGENT} lwp-trivial [NC,OR]
RewriteCond %{X-moz} prefetch
RewriteRule .* - [F]

Lien vers le commentaire
Partager sur d’autres sites

Ce qui ne change malheureusement rien au cas évoqué par Dadou: le changement d'User Agent.

Toi, moi, Dan, ton voisin, le père de ton voisin, ta belle-mère, ma belle-mère.. bref: n'importe qui peut changer son UA...

... Y compris quelqu'un utilisant HTTrack !

Au final, voici ce que je préconise:

  1. Bloquer HTTrack (et PHPDig, Webcopier, wget...) via htaccess, cf le message de Dan. Au cas où ils ne changent pas d'UA, ce sera déjà ça de fait.
  2. Mettre en place un nombre limité d'affichages successifs, cf le post de Régis.
  3. Mettre en place de "faux" liens sur la page. Par exemple un lien sur un point (.) avec un CSS qui désactive l'affichage du lien. Ce lien pointera sur une adresse de type www.example.com/es-tu-un-robot.php. Vérifier ensuite dans les stats de cette page qui est un robot malfaisant, et qui est un utilisateur de Lynx (ou autre navigateur-texte) qui aura suivi ce lien en toute bonne foi. cf post de silexian, technique n°3.

Avec ça, tu seras paré ! ;)

Lien vers le commentaire
Partager sur d’autres sites

Effectivement, tout le monde peut changer l'user agent...

Mais sinon ne peut on pas tout simplement bloquer le download de pages sur les sites avec un script, sans pour autant connaitre l'user agent?

Sinon j'ai un site listant les user agent...mais comme vous verrez il y en a des milliers...

http://www.botsvsbrowsers.com/category/21/index.html

merci

Lien vers le commentaire
Partager sur d’autres sites

Mais sinon ne peut on pas tout simplement bloquer le download de pages sur les sites avec un script, sans pour autant connaitre l'user agent?
J'ai peur de ne pas comprendre la question :-/

Sinon j'ai un site listant les user agent...mais comme vous verrez il y en a des milliers...

http://www.botsvsbrowsers.com/category/21/index.html

C'est tout ?

Voici une vraie liste: http://www.user-agents.org/ (c'est l'ancien psychedelix.com)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...