Easy-Design.Net forum




Aide générale Bloquer des robots indésirables

m-ickael Membre non connecté

EDN Maitre-Sage

Rang

Avatar

Inscrit le : 23/02/2010 à 09h15

Messages: 2296

Le 18/12/2015 à 10h20
Bonjour.

J'ai suivi un tutoriel pour bloquer des robots indésirables sur mon site.

J'aimerai avoir votre avis d'une part, mais j'aimerai aussi savoir si j'ai tout fait correctement.

Voici mon index.php :

Code PHP :
<?php
/*##################################################
 *                                index.php
 *                            -------------------
 *   begin                : August 23 2007
 *   copyright            : (C) 2007 CrowkaiT
 *   email                : [email protected]
 *
 *
###################################################
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 *
###################################################*/
 
define('PATH_TO_ROOT', './');
@include_once('./kernel/db/config.php'); //Fichier de configuration (pour savoir si PHPBoost est installé)
unset($sql_host, $sql_login, $sql_pass); //Destruction des identifiants bdd (on n'en a pas besoin sur cette page)
 
require_once('./kernel/framework/functions.inc.php');
$CONFIG = array();
//Chargement manuel de la configuration générale
@include_once('./cache/config.php');
 
//Si PHPBoost n'est pas installé, on renvoie vers l'installateur
if (!defined('PHPBOOST_INSTALLED'))
{
    import('util/unusual_functions', INC_IMPORT);
    redirect(get_server_url_page('install/install.php'));
}
elseif (empty($CONFIG))
{   // Si la configuration n'existe pas mais que PHPBoost est installé
    // on renvoie vers la page membre du noyau dont on est sûr qu'elle existe
    import('util/unusual_functions', INC_IMPORT);
    redirect(get_server_url_page('member/member.php'));
}
 
//Sinon, c'est que tout a bien marché, on renvoie sur la page de démarrage
define('DIR', $CONFIG['server_path']);
define('HOST', $CONFIG['server_name']);
$start_page = get_start_page();
 
if ($start_page != HOST . DIR . '/index.php' && $start_page != './index.php') //Empêche une boucle de redirection.
redirect($start_page);
else
redirect(HOST . DIR . '/member/member.php');
 
include './unwantedBots.php';
 
?>


J'aimerai savoir si j'ai bien fait de mettre " ./unwantedBots.php " au lieu de " unwantedBots.php "

Je me suis fié à l'include en haut " ./kernel/......."

Code PHP :
include './unwantedBots.php';


Voici le fichier .php avec la liste des robots indésirables :

Code PHP :
<?php
$httpUserAgent = null;
if(isset($_SERVER['HTTP_USER_AGENT'])) {
    $httpUserAgent = $_SERVER['HTTP_USER_AGENT'];
 
    $unwanted = array(   
        "007ac9",       // Mozilla/5.0 (compatible; 007ac9 Crawler; http://crawler.007ac9.net/)
        "7zap",         // http://volkswagen.7zap.com/;Mozilla/4.61 [en] (X11; U; ) - BrowseX (2.0.0 Windows)
        "admantx",      // ADmantX Platform Semantic Analyzer - ADmantX Inc. - www.admantx.com - [email protected]
        "ahrefsbot",    // Mozilla/5.0 (compatible; AhrefsBot/5.0; +http://ahrefs.com/robot/)
        "archive-org.com", 
        "baiduspider",  // Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)
        "betabot",      // betaBot
        "blexbot",      // Mozilla/5.0 (compatible; BLEXBot/1.0; +http://webmeup-crawler.com/)
        "ccbot",        // CCBot/2.0 (http://commoncrawl.org/faq/)
        "cmscrawler",   // Mozilla/4.0 (CMS Crawler: http://www.cmscrawler.com)
        "contextad bot", // ContextAd Bot 1.0
        "cognitiveseo", // Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.10) Gecko/20050716 Thunderbird/1.0.6 - WebCrawler http://cognitiveseo.com/bot.html
        "crystalsemantics", // CrystalSemanticsBot http://www.crystalsemantics.com/service-navigation/imprint/useragent/)
        "domainoptima", // http://www.domainoptima.com/robot)
        "domainsigma",  // Mozilla/5.0 (compatible; DomainSigmaCrawler/0.1; +http://domainsigma.com/robot)
        "dotbot",       // Mozilla/5.0 (compatible; DotBot/1.1; http://www.opensiteexplorer.org/dotbot, [email protected])
        "easouspider",  // Mozilla/5.0 (compatible; EasouSpider; +http://www.easou.com/search/spider.html)
        "exabot",       // Mozilla/5.0 (compatible; Exabot/3.0; +http://www.exabot.com/go/robot)
        "fr-crawler",   // Mozilla/5.0 (compatible; fr-crawler/1.1)
        "genieo",       // Mozilla/5.0 (compatible; Genieo/1.0 http://www.genieo.com/webfilter.html)
        "golden-praga", // http://golden-praga.ru/;Opera/7.11 (Windows NT 5.1; U) [en]
        "httpclient",   // Apache-HttpClient/4.2.3 (java 1.5)
        "grapeshotcrawler", // Mozilla/5.0 (compatible; GrapeshotCrawler/2.0; +http://www.grapeshot.co.uk/crawler.php)
        "ia_archiver", // ia_archiver (+http://www.alexa.com/site/help/webmasters; [email protected])
        "james bot",    // ;Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6 - James BOT - WebCrawler http://cognitiveseo.com/bot.html
        "leikibot",     // Mozilla/5.0 (Windows NT 6.3;compatible; Leikibot/1.0; +http://www.leiki.com)
        "libcurl",      // curl/7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5
        "linkdexbot",   // Mozilla/5.0 (compatible; linkdexbot/2.0; +http://www.linkdex.com/bots/)
        "lipperhey",    // Mozilla/5.0 (compatible; Lipperhey SEO Service; http://www.lipperhey.com/)
        "livelap",      // "LivelapBot/0.2 (http://site.livelap.com/crawler)
        "lssrocket",    // LSSRocketCrawler/1.0 LightspeedSystems
        "magpie",       // magpie-crawler/1.1 (U; Linux amd64; en-GB; +http://www.brandwatch.net)
        "meanpathbot",  // Mozilla/5.0 (compatible; meanpathbot/1.0; +http://www.meanpath.com/meanpathbot.html)
        "memorybot",    // Mozilla/5.0 (compatible; memoryBot/1.20.311 +http://internetmemory.org/en/)
        "mj12bot",      // Mozilla/5.0 (compatible; MJ12bot/v1.4.5; http://www.majestic12.co.uk/bot.php?+)
        "nerdybot",     // NerdyBot
        "netseer",      // Mozilla/5.0 (compatible; NetSeer crawler/2.0; +http://www.netseer.com/crawler.html; [email protected])
        "nutch",        // Kraken/Nutch-2.2.1 (Nutch crawler launched by Integral Ad Science, Inc.; TBD; TBD)
        "pleasebot",    // Mozilla/5.0 (compatible; 200PleaseBot/1.0; +http://www.200please.com/bot)
        "proximic",     // Mozilla/5.0 (compatible; proximic; +http://www.proximic.com/info/spider.php)
        "safesearch",   // SafeSearch microdata crawler (https://safesearch.avira.com, [email protected])
        "semalt",       // http://semalt.semalt.com/crawler.php?
        "semrushbot",   // Mozilla/5.0 (compatible; SemrushBot/0.98~bl; +http://www.semrush.com/bot.html)
        "slurp",        // Yahoo! Slurp 
        "stackoverflow", // http://meta.stackoverflow.com/q/130398
        "riddler",      // Riddler (http://riddler.io/about)
        "ru_bot",       // Mozilla/5.0 (compatible; Linux x86_64; Mail.RU_Bot/2.0; +http://go.mail.ru/help/robots)
        "SearchmetricsBot", // Mozilla/5.0 (compatible; SearchmetricsBot; http://www.searchmetrics.com/en/searchmetrics-bot/)
        "seokicks",     // Mozilla/5.0 (compatible; SEOkicks-Robot; +http://www.seokicks.de/robot.html)
        "seznambot",    // Mozilla/5.0 (compatible; SeznamBot/3.2; +http://fulltext.sblog.cz/)
        "showyoubot",   // ShowyouBot (http://showyou.com/crawler)
        "sistrix",      // Mozilla/5.0 (compatible; SISTRIX Crawler; http://crawler.sistrix.net/)
        "smtbot",       // Mozilla/5.0 (compatible; SMTBot/1.0; +http://www.similartech.com/smtbot)
        "spbot",        // Mozilla/5.0 (compatible; spbot/4.1.0; +http://OpenLinkProfiler.org/bot )
        "spiderbot",    // Spiderbot/Nutch-1.7
        "sogou",        // Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)
        "tineye",       // moteur indexation images
        "turnitinbot",  // TurnitinBot/3.0 (http://www.turnitin.com/robot/crawlerinfo.html)
        "twitter",      // Twitterbot/1.0
        "twittmemebot", // Mozilla/5.0 (TweetmemeBot/4.0; +http://datasift.com/bot.html) Gecko/20100101 Firefox/31.0
        "umbot",        // Mozilla/5.0 (compatible; uMBot-LN/1.0; mailto: [email protected]
        "voilabot",     // Mozilla/5.0 (Windows NT 5.1; U; Win64; fr; rv:1.8.1) VoilaBot BETA 1.2 ([email protected])
        "wotbox",       // Wotbox/2.01 (+http://www.wotbox.com/bot/)
        "xovibot",      // Mozilla/5.0 (compatible; XoviBot/2.0; +http://www.xovibot.net/)
        "yandex",       // http://yandex.ru/images/search?
    );
 
    foreach ($unwanted AS $val) {
        if (stristr($_SERVER['HTTP_USER_AGENT'], $val) != FALSE) {
            header("HTTP/1.0 404 Not Found");
            readfile('404missing.html');
            die;
        }
    }
 
}


Merci :top
Swan Membre non connecté

Administrateur

Rang

Avatar

Inscrit le : 01/08/2009 à 22h53

Messages: 8431

Le 18/12/2015 à 11h46
Bonjour,

Au première abord cela m'avais paru bon mais il me semble que @include_once, non ?

Swan :study ^^


swan_signature

Site web    
m-ickael Membre non connecté

EDN Maitre-Sage

Rang

Avatar

Inscrit le : 23/02/2010 à 09h15

Messages: 2296

Le 18/12/2015 à 17h48
Bonjour.

Justement, je ne sait pas .. J'ai suivi le tuto (hors phpboost) .. Dois-je rectifier?

Merci :top
janus57 Membre non connecté

EDN Erudit(e)

Rang

Avatar

Inscrit le : 14/01/2013 à 21h59

Messages: 1018

Le 19/12/2015 à 03h18
Bonjour,

pour éviter tout problème include c'est très bien car cela permet de remonter les erreur plus facilement que include_once.

Après perso je dirais que ce blocage est potentiellement une mauvaise idée car fait en PHP, le mieux serait de bloquer au niveau plus haut donc avec apache et un .htaccess, comme ça les robots n'arriverait même pas à taper les pages PHP.

Aussi là vu que c'est présent uniquement dans le fichier index.php (qui n'est appelé que une seul et unique fois) cela ne sert à rien car par exemple sur le robot tape directement sur un lien du forum il outrepasse la ""protection"".

Si le but est juste de réduire le nombre de robot indexeur, le plus simple est de voir si ils ont un site et une documentation qui permet de leur dire "stop ne visitez plus mon site", les plus sérieux le font donc pas besoin de les bloquer et pour le reste suffit de les refuser via un .htaccess

Note : Cela ne protège absolument en rien contre les robots qui poste des messages de pubs.

Cordialement, janus57
   
m-ickael Membre non connecté

EDN Maitre-Sage

Rang

Avatar

Inscrit le : 23/02/2010 à 09h15

Messages: 2296

Le 19/12/2015 à 22h47
Salut.

Toutes les idées sont bonnes à prendre.

Comment rédiger ce .htaccess ?

Merci.
janus57 Membre non connecté

EDN Erudit(e)

Rang

Avatar

Inscrit le : 14/01/2013 à 21h59

Messages: 1018

Le 19/12/2015 à 22h55
Bonjour,

Plusieurs solutions d'après google :

Code TEXT :
 
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^.*(Baiduspider|HTTrack|Yandex).*$ [NC]
RewriteRule .* - [F,L]
 


Code TEXT :
 
<IfModule mod_rewrite.c>
SetEnvIfNoCase ^User-Agent$ .*(craftbot|download|extract|stripper|sucker|ninja|clshttp|webspider|leacher|collector|grabber|webpictures) HTTP_SAFE_BADBOT
SetEnvIfNoCase ^User-Agent$ .*(libwww-perl|aesop_com_spiderman) HTTP_SAFE_BADBOT
Deny from env=HTTP_SAFE_BADBOT
</ifModule>
 


Perso j'ai jamais eu a mettre ce genre de blocage pour les robots, par contre j'ai déjà du bloquer le réseau TOR car quelqu'un s'amusait sur un de mes sites de tests via TOR.

Cordialement, janus57
   
m-ickael Membre non connecté

EDN Maitre-Sage

Rang

Avatar

Inscrit le : 23/02/2010 à 09h15

Messages: 2296

Le 20/12/2015 à 08h59
Bonjour.

Ok, je te remercie.

Je voulais savoir uniquement car j'ai toujours le problème de "not connect database user-connection" ou connerie du genre .. J'ai réussi à contrôler Google, mais ce n'est plus lui, ce sont des IP "inconnus" de chez Free, ou Orange .. Et je doute très fortement que quelqu'un s'amuse à faire planter le site de temps en autres et ceci tous les jours ^^ J'ai pas de concurrent, ni d'ennemis, ni quoi que ce soit.

Bref, merci @Janus57 :)
janus57 Membre non connecté

EDN Erudit(e)

Rang

Avatar

Inscrit le : 14/01/2013 à 21h59

Messages: 1018

Le 20/12/2015 à 09h11
Bonjour,

si ce sont des IP de FAI alors ce ne sont peut être pas des robots, c'est soit une utilisation "normale" du site, soit les personnes qui utilise des applications/extension un peu violente dans leur navigateur web.

Je sais que par exemple sous firefox il existe une applications qui peu "booster" le nombre de connexions simultanés à 36 alors que la règlementation RFC autorise maximum 16connexions.
Donc les personnes qui utilisent ce genre d'addons, dans la configuration "extrême" peuvent provoquer ce genre de problème au niveau du site.

Après comme moi il peuvent aussi très bien utiliser un lecteur de flux RSS sur PC + Mobile ce qui fait que régulièrement (toute les 5 minutes pour moi par exemple) le logiciel va taper sur le flux RSS, mais pas sur les pages normal si il est bien conçus.

Pour corriger ce problème sur le long terme la seule solution à mes yeux est de prendre une offre qui permet un nombre plus important de connexion à MySQL.
Car si une fois tout les robots bloqué cela continue bah pas de chance cela viens des visiteurs et donc d'une utilisation normale ou alors de visiteur qui ont des cochonneries sur leur PC (possible aussi).

Cordialement, janus57
   
m-ickael Membre non connecté

EDN Maitre-Sage

Rang

Avatar

Inscrit le : 23/02/2010 à 09h15

Messages: 2296

Le 21/12/2015 à 09h10
Salut.

Je suis à 15 connexions, c'est déjà énorme tu ne crois pas?

Cdt.
janus57 Membre non connecté

EDN Erudit(e)

Rang

Avatar

Inscrit le : 14/01/2013 à 21h59

Messages: 1018

Le 21/12/2015 à 12h54
m-ickael:
Salut.

Je suis à 15 connexions, c'est déjà énorme tu ne crois pas?

Cdt.

Bonjour,

non je trouve pas ça énorme, je dirais que avec 20/25 ce serait déjà mieux pour une V3 de PHPBoost.

Perso rien qu'avec des tests local (donc moi tout seul + certains logiciels de bench) je suis déjà monté à 10 connexions sur une V4.0 (qui est très proche d'une V3).

Cordialement, janus57
   
m-ickael Membre non connecté

EDN Maitre-Sage

Rang

Avatar

Inscrit le : 23/02/2010 à 09h15

Messages: 2296

Le 21/12/2015 à 15h21
D'accord .. Ben je ferai avec alors, pas le choix .. Merci.
m-ickael Membre non connecté

EDN Maitre-Sage

Rang

Avatar

Inscrit le : 23/02/2010 à 09h15

Messages: 2296

Le 27/12/2015 à 20h59
Salut.

J'ai décidé de mettre le code dans le .htaccess, car j'ai trop d'erreurs, et ça m'énerve vraiment !

J'ai mis le code ci-dessous, dans la configuration avancée.

Est-ce correct? Est-ce suffisant? :

Code TEXT :
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 month"
ExpiresDefault "access plus 2 days"
FileETag none
</IfModule>
<IfModule mod_expires.c>
SetEnvIfNoCase ^User-Agent$ .*(craftbot|download|extract|stripper|sucker|ninja|clshttp|webspider|leacher|collector|grabber|webpictures) HTTP_SAFE_BADBOT
SetEnvIfNoCase ^User-Agent$ .*(libwww-perl|aesop_com_spiderman) HTTP_SAFE_BADBOT
Deny from env=HTTP_SAFE_BADBOT
</IfModule>
Edité par m-ickael Le 27/12/2015 à 21h00
m-ickael Membre non connecté

EDN Maitre-Sage

Rang

Avatar

Inscrit le : 23/02/2010 à 09h15

Messages: 2296

Le 27/12/2015 à 22h55
Bon bah j'ai tjr autant d'erreurs lol.
janus57 Membre non connecté

EDN Erudit(e)

Rang

Avatar

Inscrit le : 14/01/2013 à 21h59

Messages: 1018

Le 28/12/2015 à 00h56
Bonjour,

c'est ce qui a été mis dans l'administration avancé de PHPboost ?

Je conseil plus ce code
Code TEXT :
 
RewriteCond %{HTTP_USER_AGENT} ^.*(Baiduspider|HTTrack|Yandex).*$ [NC]
RewriteRule .* - [F,L]
 

avec le use-agent des robot mis en adéquations avec ceux qui visitent le site, sinon le code en sert à rien à part manger des ressources en plus pour la vérification.

Ensuite pour ce qui est de cette partie :
Code TEXT :
 
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 month"
ExpiresDefault "access plus 2 days"
FileETag none
</IfModule>
 

il faut savoir que chez nuxit elle sert à rien car visiblement il n'ont pas le mod_expires d'activé (testé avec vtt64)

Cordialement, janus57
   
m-ickael Membre non connecté

EDN Maitre-Sage

Rang

Avatar

Inscrit le : 23/02/2010 à 09h15

Messages: 2296

Le 28/12/2015 à 10h46
Bonjour Janus57

Y a t-il une liste des user agent? Car je ne connais pas du tout ceci :/.
Je ne saurai même dire quels bots visitent le site en dehors de Google et Msn :/

Le code que tu me conseil s'insère entre les balises "<IfModule mod_expires.c>...</Ifmodule>" visible dans le .htaccess ou en dehors?

Merci :top Edité par m-ickael Le 28/12/2015 à 10h47
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie