/!\ aspirateur de site et anti référencement .

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par Mumuri, 24 Février 2006.

  1. Mumuri
    Mumuri WRInaute passionné
    Inscrit:
    3 Novembre 2004
    Messages:
    1 410
    J'aime reçus:
    0
    Voila, si j'écris ce post si pour signaler une possible faille de sécurité dans les anti aspirateurs de site, faille qui aurai pour conséquence de vous faire bannir volontairement un bot d'un moteur de recherche et de vous faire couler au fond du classement.

    le problème

    Le bannissement d'un moteur de recherche par un anti aspirateur de site peut être involontaire (mauvais paramétrage d'un script par exemple) ou volontaire. En effet, un concurrent malhonnête pourrait volontairement vous envoyer des requêtes http avec pour ip source celle d'un moteur de recherche (c'est tout à fait possible, il existe des générateurs de paquets http qui font çà), ce qui aurait pour conséquence de bannir automatiquement le bot de votre site, ce qui ferait autant de pages indexés en moins. Quant à dire que c'est peu probable, vu la concurrence qu'il y a dans le milieu du référencement, je préfère prévenir que guérir ;).

    la solution

    Heureusement, il existe une solution simple. Elle consiste à définir une liste d'ips de confiance, incluant les ips des bots de recherche. Si l'ip de l'hote fait partie de la liste, on ne le banni pas sinon on le banni et on envoie un mail à l'administrateur.

    Code:
    Si (ip_appartient_a_liste_de_confiance())
        redirection_vers_l_index_du_site
    sinon
        bannissement_par_htaccess
        mail_a_l_administrateur
        affichage_d_un_message
    finSi
    
    Remarque : pour ceux qui se dirait que les aspirateurs de site pourraient intégré une technologie qui falsifierai l'ip et la mettrai dans la liste des ips de confiance, dites vous bien que quand un logiciel fait une requête avec une ip qui n'est pas la sienne, la réponse est directement envoyé à l'ip falsifié ce qui n'a aucun n'intêrets pour le leecher.

    Implémentation

    L'implémentation se fait en plusieurs temps, d'abord on fait un fichier antiaspi.php (source plus bas) qu'on upload sur le serveur. Ensuite, on fait un rewriting sur ce fichier de ce type.

    Ce régle renvoie tous les fichiers de la forme [chiffre]anti.html vers antiaspi.php, par exemple 75864anti.html ou 6anti.html.

    Ensuite, on "parsème le site web",de liens aléatoires ayant la forme définie précédemment et non visible par l'utilisateur. (il vaut mieux éviter les liens vides car les aspirateurs les détectent et ne les suivent pas)

    fichier antiaspi.php
    Code:
    <?
     // phplicense
     // auteur : mumuri
     // site : http://topflood.com
    
     // pour une ip en 216.239.33.xxx, mettre 216.239.33. , attention à ne pas oublier le . final
     // pour 216.239.xxx.xxx mettre   216.239.
    
     // http://www.iplists.com/google.txt
     // http://www.iplists.com/inktomi.txt
    
     $ip = $_SERVER["REMOTE_ADDR"];  // récupére l'ip
    
     // Remarque : pour faire des tests, vous pouvez forcer l'ip
     // $ip = "66.249.239.23";     //  bot
     // $ip = "23.66.249.239";     // ip standard
     $ipsautorisees= array(
                    '216.239.','66.249.','209.185.','64.68.','64.233.','216.33.',  // google bot
    
                    '141.185.','169.207.','199.177.','202.160.','202.165.','202.212.5.','202.46.19.93','203.123.188.', '203.255.234.', // yahoo
                    '206.190.43.','207.126.239.','209.1.12.','209.1.13.','209.131.','209.191.','209.185.', '209.1.32.','209.191.',
                    '209.67.206.','209.73.176.', '211.14.8.240','211.169.241.21','213.216.143.','216.109.','216.136.233.164','216.145.58.219',
                    '216.155.', '216.198.200.123' ,'216.239.193.','216.32.237.','62.172.199.','62.27.59.245','63.163.102.182', '64.157.137.',
                    '64.157.138.','64.75.36.','66.163.170.' ,'66.163.174.65','66.196.101','66.196.65' ,'66.196.67.','66.196.','66.218.65.52',
                    '66.228.', '66.94.','68.142.', '72.30.101.','72.30.102.', '72.30.103.','72.30.104.','72.30.107.','72.30.110.','72.30.111.',
                    '72.30.128.', '72.30.129.','72.30.131.','72.30.132.','72.30.133.','72.30.134','72.30.135.','72.30.',
    
                    '207.46.98.', '65.54.188.' ,'207.68.146.'  // msn bot
                    );
    
    if(is_in_liste($ip)  )
    {
    // ip de confiance
      header("HTTP/1.1 301 Moved Permanently");
      header("Location: http://votresite.com");
      exit;
    } else
    {
    // banissement
    
        // --------  bannir ici  : script de Baltyre ------------
          $htaccess="\nDeny from ".$ip;
          $fp = fopen(".htaccess","a");
          if (flock($fp, LOCK_EX)) {
               fputs($fp,$htaccess);
             flock($fp, LOCK_UN);
             }
          fclose($fp);
        // ---------------------------------------------
    
        // --------------- mailer -------------------
    
        $Host = gethostbyaddr( $ip );                // Retourne le Host
        $Referer = getenv("HTTP_REFERER");              // Retourne le Referer
        $Date = date("F j, Y, g:i:s");                // Date du jour
        $Client = getenv("HTTP_USER_AGENT");
        $site =    getenv("HTTP_HOST");          // récupére le nom du site , si vous en avez plusieurs
    
        $message  = "<b>Banissement d'une ip</b> \n";
        $message .= "------------------- \n";
        $message .= " Site : $site \n\n";
        $message .= "<b> Infos sur le banni :</b> \n";
        $message .= " Ip : $ip \n";
        $message .= " Host : $Host \n";
        $message .= " Client : $Client \n";
        $message .= " Date : $Date \n";
        $message .= " Référant : $Referer  \n";
    
    // envoie d'un mail au responsable : utile si par hasard un robot est passé à travers votre filtre
     mail ("[email protected]", "Alerte Ban: $ip - ".$Date, $message  , "From: [email protected]$site");
        // ---------------------------------------------
    
         // --------------- affichage  -------------------
     // on averti le banni ...
        echo "<html><head><title>Bannissement</title></head><body><pre>";
        echo "<h1>Banissement</h1>\n";
    
        echo "L'utilisation d'aspirateur de site est proscrite sur ce site . Vous avez donc été banni\n";
        // on lui fait un peu peur ;)
        echo "Les informations suivantes ont été loggué et pourront faire l'objet d'une poursuite judiciaire.\n\n";
        echo $message;
        echo "\n\n";
    
        // le truc à la con ... ;)
        echo "Apprenez que pour flooder un site, il y a des techniques :<a href=http://topflood.free.fr/zine/base-Techniques-de-flood.php>techniques de flood</a>\n";
    
        // dés fois que y'en qui s'amuse à afficher la source de certains sites et qu'il teste l'url
        echo "Si vous pensez que c'est une erreur, veuillez en avertir le webmaster à [email protected] \n";
    
        echo "</pre><a href=ban.php>ss</a></body></html>";
        // ---------------------------------------------
    }
    
    function is_in_liste($ip)
    { global $ipsautorisees;
     $trouve= false;
    
     $taille = count($ipsautorisees);
     $i=0;
      while($i<$taille && !$trouve )
        {
          $pos = strpos ($ip,$ipsautorisees[$i]);
          if($pos === 0 )
          {
            $trouve= true;
           }
           $i++;
        }
       return  $trouve;
    }
    ?>
    Remarque

    Surveillez bien les ips envoyés dans les même de bannissement des fois qu'il manque des ips de bots (et posté les ici tant qu'on y est, je pense que j'en ai oublié pour msnbot)

    Le problème est d'autant plus vicieux qu'on ne peux pas identifier le concurrent (dans le cas ou il spoofe son ip).
     
  2. spidetra
    spidetra WRInaute passionné
    Inscrit:
    7 Juillet 2003
    Messages:
    1 215
    J'aime reçus:
    0
    et hop.... une petite reco pour mumuri
     
  3. Mumuri
    Mumuri WRInaute passionné
    Inscrit:
    3 Novembre 2004
    Messages:
    1 410
    J'aime reçus:
    0
    là je vise la news sur la page principale :lol:
    avec pour titre "une nouvelle technique d'anti référencement" 8)
     
  4. TOMHTML
    TOMHTML WRInaute accro
    Inscrit:
    25 Août 2004
    Messages:
    2 502
    J'aime reçus:
    0
    moi j'ai fait un truc moins compliqué que toi :
    j'ai d'une part un script qui détecte si l'agent utilisateur est un aspirateur (genre HTTrack), si c'est le cas c'est automatiquement redirigé vers une page du genre "truc.php?page=1" qui ne contient qu'un lien vers "$page++"
    >> ça ne bouffe pas trop de bande passante et en plus ça fait bien chier le méchant copieur qui doit patienter des heures pour télécharger mon site ^^ >> et en plus il peut même pas le télécharger, puisqu'il est redirigé vers la page dont je parle au dessus :)

    deuxiemement, j'ai fait exprès un lien "cassé". Ce lien est "caché" donc c'est quasiment impossible qu'un utilisateur clique dessus. Je loggue toutes les erreurs 404, avec IP (fuck off la cnil) agents_utilisateurs, etc...
    comme ça apres je fais le tri à la fois manuellement, mais aussi si une même IP fait la même erreur dans un court laps de temps et que ce n'est pas un robot "OK" (oui car j'ai une petite liste pour vérifier, au cas où) et bien je bloque.


    mais c'est un bon script ton truc, je recommande :)
     
  5. Mumuri
    Mumuri WRInaute passionné
    Inscrit:
    3 Novembre 2004
    Messages:
    1 410
    J'aime reçus:
    0
    et qu'es ce que tu fais si un gars te balance des paquets avec pour ip sources celui des bots de google et pour useragent "httrack" ? ;).

    un générateur de chaine numérique aléatoire pour ceux qui ont la flemme de chercher ;).
    Code:
     $rand_str="";
        for($i = 0; $i < rand(1,9); $i++) // taille aléatoire en plus ...
        {
            $rand_str .=rand(0, 255);
        }
    ---------
    chaine aléatoire pour un phpBB
    dans un fichier php (genre viewforum.php)
    Code:
     $rand_str="";
        for($i = 0; $i < rand(1,9); $i++) // taille aléatoire en plus ...
        {
            $rand_str .=rand(0, 255);
        }
     $template->assign_vars(array('random' => '$rand_str '));
    et dans le template
    Code:
     {random}

    merci pour les 11 recos au passage ;)
     
  6. thierry8
    thierry8 WRInaute accro
    Inscrit:
    11 Juillet 2005
    Messages:
    2 728
    J'aime reçus:
    0
    Est-ce que beaucoup d'entre vous utilise un anti-apsirateur de site ?

    Est-ce vraiment utile ?

    Le gars qui veux pomper le site....il n'a cas le faire...
    Malheur à lui si vous vous en apercevez...
     
  7. Mumuri
    Mumuri WRInaute passionné
    Inscrit:
    3 Novembre 2004
    Messages:
    1 410
    J'aime reçus:
    0
    disons qu'aprés c'est une question de quota de traffic suivant ton hébergement. et je pense que les gros sites doivent tous plus ou moin en utilisé (bien que n'ayant aucune preuve).

    faut aussi se dire qu'un administrateur qui utilise des logiciels genre snort et qui connaissent pas bien les ips de google et compagnie pourraient les bannir à tort en voyant les logs de leurs firewalls.
     
  8. TOMHTML
    TOMHTML WRInaute accro
    Inscrit:
    25 Août 2004
    Messages:
    2 502
    J'aime reçus:
    0
    tu aurais dû remplacer le ";)" par "[​IMG]", méchant ^^

    ça dépend du site : si c'est un petit site perso ça devrait faire plaisir qu'on te copie (lol), mais quand c'est un site que tu t'es cassé le c** à réaliser, aux fruits d'années de recherches, ça fait chier de voir quelqu'un prend même pas la peine de consulter le site en ligne et le télécharge directement...
    d'autant plus si c'est un plagiaire qui fait ça pour remettre ça en ligne à son compte....
     
  9. thierry8
    thierry8 WRInaute accro
    Inscrit:
    11 Juillet 2005
    Messages:
    2 728
    J'aime reçus:
    0
    Ni a t-il justement pas un moyen de connaître ce genre de plagiat ?

    Mais ne pense-tu pas que si ton site plait et que si quelqu'un souhaite te le pomper il y arrivera de toute manière ?



    Encore une chose par rapport aux ips et donc l'idée de Murmuri.
    Si celui qui visite ton site a l'ip d'un bot, il pourra te pomper sans
    problème tes pages du fait qu'il sera considéré comme un bot ?
    (ca va dans les deux sens...si quelqu'un peut prendre une ip d'un bot pour
    influencer ton référencement, quelqu'un pourra utiliser une ip pour pomper ton site)
     
  10. Mumuri
    Mumuri WRInaute passionné
    Inscrit:
    3 Novembre 2004
    Messages:
    1 410
    J'aime reçus:
    0
    j'avais mis une petite remarque pour çà ;)
    mort de rire l'icone "brice de nice" tom html ;)
     
  11. thierry8
    thierry8 WRInaute accro
    Inscrit:
    11 Juillet 2005
    Messages:
    2 728
    J'aime reçus:
    0
    ah ok je m'excuse !
    Je n'avais pas vu.

    Mais je n'ai rien compris. :(
     
  12. Mumuri
    Mumuri WRInaute passionné
    Inscrit:
    3 Novembre 2004
    Messages:
    1 410
    J'aime reçus:
    0
    Voila toute l'explication

    [​IMG]

    Tout d'abord,

    - le concurrent malhonnéte envoie la requete avec l'ip de googlebot à ton site
    - ton site répond à googlebot en lui renvoyant la page (le serveur de ton site renvoie la requete à l ip source contenu dans le paquet)
    - googlebot renvoie un paquet a ton site pour dire qu'il n'a pas sollicité cette page.

    donc au final le leecher ou le concurrent n'a rien reçu.

    PS : ne fais pas attention au légende (syn spoof, syn ack et rst, c'est liée au protocole tcp et non au protocole http, j'ai pas retrouvé les archives de mes fichiers et j'ai du expliquer sur l'image que j'avais )
     
  13. thierry8
    thierry8 WRInaute accro
    Inscrit:
    11 Juillet 2005
    Messages:
    2 728
    J'aime reçus:
    0
    humm...
    Oui j'ai compris. ;)
     
  14. absoluteweb
    absoluteweb WRInaute occasionnel
    Inscrit:
    22 Novembre 2002
    Messages:
    367
    J'aime reçus:
    0
    Autre solution :
    http://www.toulouse-renaissance.net/c_o ... ateurs.htm

    Le principe est d'interdire la page piégée dans robots.txt et dans la page d'accès à la page piégée (noindex, nofollow). Les bons moteurs ne suivront pas ce lien et ne seront donc pas piégés, les mauvais moteurs et les aspirateurs seront bannis.

    Nicolas.
     
  15. cdpdf
    cdpdf WRInaute impliqué
    Inscrit:
    11 Mars 2003
    Messages:
    729
    J'aime reçus:
    0
    C'est tres facile à contourner, car je sais que certains aspirateurs permettent de respecter le fichier robots.txt
     
  16. Albert1
    Albert1 WRInaute impliqué
    Inscrit:
    23 Août 2005
    Messages:
    771
    J'aime reçus:
    0
    tout à fait :wink:
     
  17. absoluteweb
    absoluteweb WRInaute occasionnel
    Inscrit:
    22 Novembre 2002
    Messages:
    367
    J'aime reçus:
    0
    Je préfère laisser passer certains aspirateurs que de devoir tenir à jour une liste non exhaustive d'IP...
     
  18. Maleville
    Maleville Nouveau WRInaute
    Inscrit:
    5 Décembre 2002
    Messages:
    15
    J'aime reçus:
    0
    Bonjour.

    Je suis le webmaster de Toulouse-Renaissance qu’a cité " absoluteweb ".
    Comme rien n’est statique en informatique, et afin d’améliorer mon script, je suis intéressé de connaître les aspirateurs qui respectent le protocole robots.txt car, pour ma part, je n’en connais pas.
     
  19. absoluteweb
    absoluteweb WRInaute occasionnel
    Inscrit:
    22 Novembre 2002
    Messages:
    367
    J'aime reçus:
    0
    Bonjour,
    J'utilise ton script depuis 2 semaines environ et j'en suis satisfait. J'ai juste rencontré un "gros" problème avec les commentaires que tu ajoutes à la fin des lignes d'IP pour indiquer la date. Ma version d'Apache génère des Warning à ce sujet (il faut mettre des " autour des commentaires) et compte tenu du nombre de visites et d'aspirateurs bannis, mon error log apache s'est saturé ! J'ai passé une heure avant de comprendre le problème.

    Le script me bloque 3-5 aspirateurs par jour, ce qui me semble assez conséquent. s'agit-il forcement "d'aspirateurs", au sens robots qui visitent toute les pages de mon site ?

    Nicolas.
     
  20. Maleville
    Maleville Nouveau WRInaute
    Inscrit:
    5 Décembre 2002
    Messages:
    15
    J'aime reçus:
    0
    Pas forcément. L’expérience montre que ceux qui se retrouvent souvent bloqués (30% des visiteurs)sont les utilisateurs de Firefox qui fréquemment désactivent, dans un excès de prudence, JavaScript et peuvent suivrent ainsi le lien interdit. Ce qui donne, par exemple :

    Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1
    Mozilla/5.0 (X11; U; Linux i686; fr-FR; rv:1.7.12) Gecko/20050920 Firefox/1.0.7
    Etc.
    Car je ne vois pas quelle autre fonction courante dans Firefox permet d’accéder au lien caché. Mais peut-être, existe t’elle.
    Les possesseurs d’Internet Explorer, dans la grande majorité, ne désactivent pas JavaScript.
    Il serait peut-être utile alors d’introduire la balise "meta" suivante :

    <NOSCRIPT>
    <meta http-equiv="refresh" content="0;URL=http://www.votre-domaine.com/pas-de-javascript.html">
    </NOSCRIPT>

    qui redirigerait les visiteurs n’ayant pas JavaScript activé sur une page d’information. Mais cela ne va t’il pas influencer Google qui n’aime pas du tout la balise "meta refresh 0" ? A y réfléchir.

    En revanche, ceux dont l’URL suivit est :
    ^/_vti_bin/owssvr.dll?UL=1&ACT=4&BUILD=2614&STRMVER=4&CAPREQ=0
    semblerait avoir la barre de discussion d’Internet Explorer ouverte. C’est ce qui ressort des forums anglo-saxons.

    Puisqu’on en est à parler du blocage automatique par IP, il peut être intéressant pour toi d’employer un automatisme pour « nettoyer » le fichier .htaccess car le faire manuellement est assez fastidieux.
    Pour cela j’ai fait un petit script qui observe à intervalle régulier le fichier .htaccess pour en vérifier la présence, vérifier s’il n’a pas été endommagé et le remplacer lorsqu’il devient trop important par l’ajout d’IP. Pour ceux qui sont sur un serveur mutualisé, cette simulation de tâche CRON leur sera très utile d’autant que ce script peut servir à toute autre tâche programmée. Je ne donnerai pas ici le lien direct qui renvoie au script mais une recherche sur mon site avec le mot clef "CRON" y mènera.

    En échange de bon procédé, et pour que d’autres ne tombent pas dans le piège, il me serait utile de connaître le détail de ton problème rencontré avec la ligne de remarque (Nom de l’hébergeur, type de serveur -mutualisé-privé, version Apache, syntaxe exacte d’une ligne corrigée avec les ""etc.)
     
  21. absoluteweb
    absoluteweb WRInaute occasionnel
    Inscrit:
    22 Novembre 2002
    Messages:
    367
    J'aime reçus:
    0
    Serveur dédié, Apache 1.3.34

    Lignes posant problème:
    SetEnvIf Remote_Addr ^218\.223\.149\.144$ ban # 04-04-2006 (Tue) 01:36:12

    Lignes ne posant plus problème:
    SetEnvIf Remote_Addr ^218\.223\.149\.144$ ban "# 04-04-2006 (Tue) 01:36:12"

    Nicolas.
     
Chargement...
Similar Threads - aspirateur anti référencement Forum Date
Quelle config pour un antiaspirateur ? Développement d'un site Web ou d'une appli mobile 20 Octobre 2016
Mobiles et antiaspirateurs. Développement d'un site Web ou d'une appli mobile 23 Mai 2015
[Résolu] Pb htaccess anti-aspirateur email URL Rewriting et .htaccess 6 Avril 2010
Mon script anti-aspirateur a blacklisté googlebot Crawl et indexation Google, sitemaps 6 Avril 2007
Anti aspirateur: ne pas bloquer Google Développement d'un site Web ou d'une appli mobile 25 Juin 2006
Anti aspirateur URGENT ? Administration d'un site Web 28 Août 2005
anti-aspirateur URL Rewriting et .htaccess 26 Juin 2005
.htaccess anti-aspirateur de site Administration d'un site Web 29 Mars 2005
Anti aspirateur de site : une idée Problèmes de référencement spécifiques à vos sites 7 Février 2005
Script anti-aspirateur et Google (et les autres...) Problèmes de référencement spécifiques à vos sites 5 Avril 2004
mod_rewrite et anti aspirateur URL Rewriting et .htaccess 11 Mai 2003
Script php Anti aspirateur Développement d'un site Web ou d'une appli mobile 27 Janvier 2003
Connaissez-vous un aspirateur de sites en ligne ? Demandes d'avis et de conseils sur vos sites 10 Juin 2017
Bloquer les SCAN BOTS, SPAM BOTS, aspirateurs, etc sur le serveur (iptables, etc...) Administration d'un site Web 12 Mai 2012
Aspirateur de sites --> Risques SEO Référencement Google 4 Mai 2012
Microsoft Aspirateur de site ? Le café de WebRankInfo 18 Janvier 2011
Détecter les aspirateurs rapidement Administration d'un site Web 1 Novembre 2010
Aspirateur de site Développement d'un site Web ou d'une appli mobile 6 Octobre 2010
Que peut simuler un aspirateur de site ? UserAgent, IP Crawl et indexation Google, sitemaps 1 Septembre 2010
Repousser un aspirateur URL Rewriting et .htaccess 31 Mars 2010