begin process at 2012 02 15 23:41:38
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Class et Objet ( POO )

 > DÉTECTEUR DE VULNERABILITY SCANNER

DÉTECTEUR DE VULNERABILITY SCANNER


 Information sur la source

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Class et Objet ( POO ) Classé sous :vulnerability scanners, bot, detector Niveau :Débutant Date de création :19/11/2009 Date de mise à jour :19/11/2009 16:39:31 Vu :4 235

Auteur : TychoBrahe

Ecrire un message privé
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

 Description

Bonjour,

Ceux qui me connaissent savent qu'il y a une chose (parmi tant d'autres) que je ne supporte pas : les vulnerability scanner. Petit rappel sur ce qu'est un "vulnerability scanner", il s'agit d'un petit robot (bot) dont le but est de passer de serveur en serveur afin de vérifier l'existence d'un logiciel qu'il sait contenir une faille en vue de l'exploiter. Bien souvent ces vagabonds du web passent en revue de grandes plages d'adresses IP afin de trouver des victimes potentielles. Ici je vous propose une class qui, pour un serveur web, aide à détecter ces bots et à écrire un fichier de log en vue d'analyse.

Le principe est très simple, le contenu de l'URL et de l'user-agent sont analysées afin de définir si oui ou non c'est un vulnerability scanner qui a fait la requête. Une fois détecté une entrée contenant toutes les informations utiles est écrite dans un fichier de log afin de l'administrateur puisse l'utiliser afin de luter contre ces menaces.

A principe simple, utilisation simple. Un simple appel à la méthode start_analyze() est suffisant. Il faut cependant faire remarquer deux choses importantes :
1/ Il est nécessaire de faire un fichier bot_alerts.log afin que le script puisse y écrire. Ce fichier doit avoir 0622 comme droits. Une commande pour le créer est donc `touch bot_alerts.log && chmod 0622 bot_alerts.log`. On prendra soin de faire en sorte que le propriétaire du fichier ne soit pas le même utilisateur que celui utilisé par le serveur web afin d'éviter que le fichier ne soit visible depuis l'extérieur.
2/ Afin de connaître l'url demandée on utilise $_SERVER['REDIRECT_URL'] et non $_SERVER['QUERY_STRING']. La raison est simple : l'appel à cette classe se fera dans la page affichée lors d'une erreur 404. Ceci pour trois raisons évidentes :
- De tels bots ciblent des logiciels grand public tels que PHPMyAdmin, pas vos pages perso.
- Vu la quantité de tests fait ils déclenchent presque obligatoirement une erreur 404.
- Si vous avez bien fait votre travail il ne doit y avoir presque que les bots qui déclenchent des 404 (avec exception sur les demandes de favicon, apple-touch-icon.png etc).

Fonctionnalités :
- Permet d'obtenir un log précis sur les activités repérées comme étant des vulnerability scanner.
- Le fichier de log est épuré de tout caractère non affichable (meilleur lisibilité et prévention des risques d'attaques par utilisation de séquences d'échappement propres au terminal).
- En cas de détection d'un bot, termine prématurément le script.
- Redirige les bots vers un nom de domaine non valide (juste pour embêter ceux qui les suivent).

Pour ceux qui veulent modifier certaines parties, au lieux de modifier directement la classe il est recommandé d'en créer une nouvelle qui hérite de celle-là afin de surcharger les membres et méthodes désirés. Le code est suffisamment découpé pour permettre une bonne utilisation de la surcharge.

Nota :
La présence de "Windows 98" dans les recherches sur le useragent est du à un bot que je rencontre régulièrement et qui se fait passer pour un IE6 sur Windows 98. Le nombre de clients réels restant sous windows 98 et générant des 404 est tellement insignifiant que je me suis permis de l'ajouter comme tel.


Edit :
Désolé pour l'indentation un peu foireuse par endroits, les tabulations ne sont pas gérées ici de la même manière que sur emacs. Si j'ai le temps je rectifierai ce point.

Source

  • <?php
  • // BotDetector.php for BotAnalyzer in /home/tycho/sources/php/class
  • //
  • // Made by Rodolphe Breard
  • // Mail <rodolphe.breard@laposte.net>
  • //
  • // Started on Sat Nov 14 11:13:32 2009 Rodolphe Breard
  • // Last update Thu Nov 19 15:54:30 2009 Rodolphe Breard
  • //
  • // Copyright (C) 2009 Rodolphe Breard
  • //
  • // 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 3 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, see <http://www.gnu.org/licenses/>.
  • //
  • define('BOTDETECTOR_LOGFILE', './bot_alerts.log');
  • class BotDetector
  • {
  • protected $log_msg = null;
  • protected $url_patterns = array('config', 'admin', 'adm', 'sql', 'shop',
  • 'store', 'cart', 'include', 'pma');
  • protected $user_agent_patterns = array('Windows 98', 'Python', 'libwww',
  • 'urllib', 'lwp',
  • 'Morpheus', 'Fucking', 'Scanner',
  • 'Toata', 'dragostea', 'pentru',
  • 'diavola');
  • public function start_analyze()
  • {
  • $this->check_patterns($_SERVER['REDIRECT_URL'], $this->url_patterns);
  • if (!empty($_SERVER['HTTP_USER_AGENT']))
  • $this->check_patterns($_SERVER['HTTP_USER_AGENT'],
  • $this->user_agent_patterns);
  • }
  • protected function bot_handler()
  • {
  • $this->write_log();
  • header('Location: http://no_bots.invalid/');
  • die();
  • }
  • protected function write_log()
  • {
  • $LogFile = new SplFileInfo(BOTDETECTOR_LOGFILE);
  • if (!$LogFile->isFile())
  • throw new Exception('BotAnalyzer: write_log: invalid log file.');
  • if ($LogFile->getPerms() & 0777 != 0622)
  • if (!chmod(BOTDETECTOR_LOGFILE, 0622))
  • throw new Exception('BotAnalyzer: write_log: bad log file mode.');
  • if (!$LogFile->isWritable())
  • throw new Exception('BotAnalyzer: write_log: unwritable log file.');
  • $LogFile = $LogFile->openFile('a');
  • $this->init_log_msg();
  • $LogFile->fwrite($this->log_msg);
  • }
  • protected function init_log_msg()
  • {
  • $datas = array(date('r'),
  • $_SERVER['REMOTE_ADDR'],
  • $_SERVER['REQUEST_METHOD'],
  • $_SERVER['SERVER_PROTOCOL'],
  • $_SERVER['HTTP_HOST'],
  • $_SERVER['REDIRECT_URL'],
  • (isset($_SERVER['HTTP_USER_AGENT']) ?
  • $_SERVER['HTTP_USER_AGENT'] : ''));
  • foreach ($datas as $key => $val)
  • $this->log_msg .= ($key != 0 ? ' - ' : '') . $this->protect_data($val);
  • $this->log_msg .= "\n";
  • }
  • protected function protect_data($str)
  • {
  • if (empty($str))
  • return 'unknown';
  • $rep = str_split(' !"#$%&\'()*+,-./:;<=>?@[\]^_`{|}~');
  • $replace = null;
  • foreach ($rep as $val)
  • $replace[urlencode($val)] = $val;
  • return strtr(urlencode($str), $replace);
  • }
  • protected function check_patterns($var, array $patterns)
  • {
  • foreach ($patterns as $pat)
  • {
  • if (stripos($var, $pat) !== false)
  • $this->bot_handler();
  • }
  • }
  • }
  • ?>
<?php
// BotDetector.php for BotAnalyzer in /home/tycho/sources/php/class
// 
// Made by Rodolphe Breard
// Mail    <rodolphe.breard@laposte.net>
// 
// Started on  Sat Nov 14 11:13:32 2009 Rodolphe Breard
// Last update Thu Nov 19 15:54:30 2009 Rodolphe Breard
// 
// Copyright (C) 2009 Rodolphe Breard
//
// 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 3 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, see <http://www.gnu.org/licenses/>.
//

define('BOTDETECTOR_LOGFILE', './bot_alerts.log');

class		BotDetector
{
  protected	$log_msg = null;
  protected	$url_patterns = array('config', 'admin', 'adm', 'sql', 'shop',
				      'store', 'cart', 'include', 'pma');
  protected	$user_agent_patterns = array('Windows 98', 'Python', 'libwww',
					     'urllib', 'lwp',
					     'Morpheus', 'Fucking', 'Scanner',
					     'Toata', 'dragostea', 'pentru',
					     'diavola');

  public function	start_analyze()
  {
    $this->check_patterns($_SERVER['REDIRECT_URL'], $this->url_patterns);
    if (!empty($_SERVER['HTTP_USER_AGENT']))
      $this->check_patterns($_SERVER['HTTP_USER_AGENT'],
			    $this->user_agent_patterns);
  }

  protected function	bot_handler()
  {
    $this->write_log();
    header('Location: http://no_bots.invalid/');
    die();
  }

  protected function	write_log()
  {
    $LogFile = new SplFileInfo(BOTDETECTOR_LOGFILE);
    if (!$LogFile->isFile())
      throw new Exception('BotAnalyzer: write_log: invalid log file.');
    if ($LogFile->getPerms() & 0777 != 0622)
      if (!chmod(BOTDETECTOR_LOGFILE, 0622))
	throw new Exception('BotAnalyzer: write_log: bad log file mode.');
    if (!$LogFile->isWritable())
      throw new Exception('BotAnalyzer: write_log: unwritable log file.');
    $LogFile = $LogFile->openFile('a');
    $this->init_log_msg();
    $LogFile->fwrite($this->log_msg);
  }

  protected function	init_log_msg()
  {
    $datas = array(date('r'),
		   $_SERVER['REMOTE_ADDR'],
		   $_SERVER['REQUEST_METHOD'],
		   $_SERVER['SERVER_PROTOCOL'],
		   $_SERVER['HTTP_HOST'],
		   $_SERVER['REDIRECT_URL'],
		   (isset($_SERVER['HTTP_USER_AGENT']) ?
		    $_SERVER['HTTP_USER_AGENT'] : ''));
    foreach ($datas as $key => $val)
      $this->log_msg .= ($key != 0 ? ' - ' : '') . $this->protect_data($val);
    $this->log_msg .= "\n";
  }

  protected function	protect_data($str)
  {
    if (empty($str))
      return 'unknown';
    $rep = str_split(' !"#$%&\'()*+,-./:;<=>?@[\]^_`{|}~');
    $replace = null;
    foreach ($rep as $val)
      $replace[urlencode($val)] = $val;
    return strtr(urlencode($str), $replace);
  }

  protected function	check_patterns($var, array $patterns)
  {
    foreach ($patterns as $pat)
      {
	if (stripos($var, $pat) !== false)
	  $this->bot_handler();
      }
  }
}

?>

 Conclusion

Ne vous attendez pas à ce que ça fasse le café, j'ai fait ça juste sur un coup de colère contre le présences quotidienne de ces saletés de bots dans un serveur dont j'ai la charge. Je doute que grand monde ne soit intéressé mais dans le doute je partage, et puis si certains ne connaissaient pas l'existence de ces vagabonds c'est une bonne occasion pour apprendre :)

Bonne chasse aux bots et tout mon amour aux filles du diable (les initiés comprendront).


 Historique

19 novembre 2009 16:31:38 :
Ajout d'une note concernant la raison du raté de l'indentation.
19 novembre 2009 16:39:31 :
typo

 Sources du même auteur

CURRYFICATION DE FONCTIONS
CLASSE DE CHIFFREMENT DE DONNÉS AVEC MCRYPT
Source avec Zip GÉNÉRATEUR DE MAKEFILE

 Sources de la même categorie

Source avec Zip MY.DEVIANTART API par inwebo
CLASSE DE GESTION DE "VARIABLES GLOBALES D'ENVIRONNEMENT" par pifou25
Source avec Zip COLLECTION.CLASS.MIN.PHP par thunderhunter
Source avec Zip SIMPLETEMPLATE par thunderhunter
Source avec Zip Source avec une capture VOIR QUI VISITE VOTRE SITE par Dariumis

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture BOT IRC POO par divx78
[PHP5] LIVE COUNTER || QUI EST EN LIGNE par Teclis01
BOT IRC : GÉNÉRATEURS DE LOGS AU FORMAT MIRC par simonviei
MASQUER VOTRE CODE AUX ROBOTS VALIDEURS W3C par kylekatarnls
Source avec Zip LOG DES ROBOTS QUI PASSENT SUR LE SITE par etiennexxx9

Commentaires et avis

Commentaire de Arto_8000 le 19/11/2009 18:37:01

Ta méthode de détection est vraiment inutile, parce que changer le user-agent des requêtes n'est pas pas vraiment compliqué et la plupart des bots qui veulent passer anonymes vont tous simplement utiliser un user-agent d'un navigateur courant comme Firefox ou Internet Explorer. Aussi, tes filtres peuvent aussi bloquer des personnes qui ne sont pas des robots, s'ils utilisent des navigateurs exotiques ou avec des user-agent particuliers.

Si tu veux vraiment t'attaquer au bot, tu devrais t'attarder surtout sur la fréquence des requêtes qui sont souvent presque du spam (et c'est surtout ça qui peut être problématique avec les bot et les scanners).

Commentaire de TychoBrahe le 19/11/2009 19:06:36

Ce qui est inutile est ton commentaire bourré de bêtises :
1. La détection se base en premier lieux sur le contenu de l'url, l'analyse du useragent n'est là que pour rattraper les éventuels cas oubliés si possible.
2. Je sais pertinemment qu'un useragent n'est pas fiable, merci de ne pas me prendre pour le premier crétin venu. Le seul truc que tu ignore c'est que la très grande majorité des vulnerability scanners ont un useragent qui permet de les différencier d'un navigateur ordinaire, flemmardise oblige. Et là je parle par expérience, j'ai en charge des serveurs qui s'en prennent plusieurs par jour, habituellement je m'en rend compte quand je consulte (très régulièrement) les log d'erreur du httpd et constate une flopée de 404. Et là je t'affirme que dans les bots dont je constate le passage de cette manière un seul n'a pas un useragent à la con tel que Morfeus Fucking Scanner, Morfeus Strikes Again, Toata dragostea mea pentru etc, et il s'agit de celui qui se fait passer pour IE6 sur un windows 98.

Donc contrairement à totu ce que tu dit, non ma méthode de détection n'est pas inefficace.

Commentaire de Arto_8000 le 19/11/2009 23:35:50

La détection par "keywork" dans le path est aussi assez douteux comme efficacité et peut même se retourner contre toi par un hacker habile qui veut vraiment te faire chier.

Voici pourquoi :

Je met sur un forum très visité un image dans ma signature qui a pour lien http://tonsite.com/pathbanni/include/admin.php et en quelques jours tes logs font se faire spammer de IP qui ne sont pas des bots.

Aussi les keyworks sont trop générique et moindrement que ton site en utilise dans l'URL et qu'un lien est brisé du genre : http://tonsite.com/shop/images/imageInexistante.gif ton script va aussi rajouter un entré qui est complètement inutile. Encore pire, je roule ton script sur une page qui a comme chemin /shop.php et ton script va faire un die dessus juste parce que le path contient "shop".

Pour le concept, je persiste quand je dis que ça n'a aucune efficacité et utilité, car tu ne les empêche d'aucune façon à scanner ton site et tout ce que ça fait, c'est te remplir un log qui te sert à rien. Tu comptes faire quoi avec les logs ? Une fois qu'ils sont passés et qu'ils ont testé tous ce qu'ils voulaient, il s'en foute complètement de tout ce que tu peux faire après. Ils sont venus, ils ont faits ce qu'ils voulaient et ils sont partis.

Commentaire de kohntark le 19/11/2009 23:42:38

Ralala ça flingue ici !!

[mode coup de gueule]
J'en profites pour donner mon avis sur la partie "codes" de CS :
J'en ai marre de voir des sources descendues systématiquement. C'est tout de même hallucinant qu'il ait toujours des remarques du style "ça sert à rien", "ton code est nul", j'en passe et des meilleures ... Certes certaines sources le méritent, mais ça reste rare.
En tous cas ça ne motive vraiment pas les gens à partager.
Moi même je m'y refuse "de peur" de ces commentaires stupides postés par des soit disant "experts" qui pour nombre d'entre eux ne valent pas grand chose lorsque l'on gratte un peu. Pour les autres ce n'est pas parce que l'on est "balèze" que l'on peut se permettre certaines impolitesses.
Je changerai peut être d'avis en me décidant à poster, et je me ferai un plaisir de descendre ces blaireaux.
[/mode coup de gueule]

Je n'ai fait que parcourir brièvement le code, mais j'approfondirai lorsque j'aurai le temps.
@Arto :
Je n'aime pas trop ton "Ta méthode de détection est vraiment inutile" qui se rapproche de ce que j'évoquais avant.
Cela étant je suis d'accord avec toi sur :
- le fait que ce soir un peu juste en terme de détection pour être réellement efficace.
- le fait que les filtres puissent bloquer des utilisateurs légitimes

Il y a beaucoup de choses à dire, je ne ferai que rebondir sur ce qui a déjà été énoncé :
"tu devrais t'attarder surtout sur la fréquence des requêtes"
La plupart des bots ne font que passer en testant, comme le dit TychoBrahe, l'existence de certains dossiers / fichiers, ils ne s'attardent pas, contrairement à des attaques brute force. Tester la fréquence est à mon avis bien moins efficace que la présente class et le risque d'impacter des utilisateurs légitimes est grand.

"merci de ne pas me prendre pour le premier crétin venu."
Si je peux me permettre, sans méchanceté aucune, tu as une certaine tendance à cela toi aussi :)

"un seul n'a pas un useragent à la con"
tu as bien de la chance, car moi j'en rencontre un paquet qui n'ont pas de user-agent.

"Donc contrairement à totu ce que tu dit, non ma méthode de détection n'est pas inefficace"
Au final je pense qu'elle l'est car elle n'empêche en rien l'accès à des applis ayant des failles de sécurité et elle consomme des ressources pour des logs improbables. Tant qu'à faire je préfère encore utiliser un htaccess basé sur une liste d'adresses IP / domaines reconnus et mis à jour très fréquemment. Au moins on se préserve des risques.
Rien n'interdit dans ce cas de faire un script qui parse les logs du serveur afin d'en retirer les bizarreries et de les ajouter.

Pour le code lui même, forcément, je n'ai pas grand chose à dire (mais il y en a quand même quelques unes :o))

Cordialement,

Kohntark-

Commentaire de Arto_8000 le 20/11/2009 02:31:59

Disont que j'ai une tendance (peut-être trop) forte à critiquer les solutions sécurités qui ne fonctionnent pas vraiment. Je m'en excuse.

Petite remarque sur la citation de "tu devrais t'attarder surtout sur la fréquence des requêtes". Tu aurais du citer ceci au lieu "tu devrais t'attarder surtout sur la fréquence des requêtes qui sont souvent presque du spam (et c'est surtout ça qui peut être problématique avec les bot et les scanners)." J'ai souligné qu'une des principales problématiques des bots et scanners étaient la fréquence souvent élevées des requêtes ce qui bouffent de la bandwidth et du processeur pour les autres connexions et qu'une protection contre ceux-ci devrait avant tout intégrer ce genre de protection. Ça déroge un peu du but de la source, mais je tenais à mentionner cela.

Commentaire de TychoBrahe le 20/11/2009 09:19:31

"Je met sur un forum très visité un image dans ma signature qui a pour lien http://tonsite.com/pathbanni/include/admin.php et en quelques jours tes logs font se faire spammer de IP qui ne sont pas des bots."
Il en est de même pour le access_log et le error_log, tu devrais aller donner des cours à des gros noobs de la fondation Apache qui visiblement n'ont pas eu vent de ta trouvaille révolutionnaire. D'accord je n'ai pas mis de gzipage automatique du fichier de log mais quand même.

"Encore pire, je roule ton script sur une page qui a comme chemin /shop.php et ton script va faire un die dessus juste parce que le path contient "shop"."
Encore une preuve que tu n'as pas lu et compris ce que j'ai écrit. C'est fait pour être placé sur la page servie en cas d'erreur 404, si la page est atteinte le script ne sera pas appelé.

"tu ne les empêche d'aucune façon à scanner ton site et tout ce que ça fait"
"elle n'empêche en rien l'accès à des applis ayant des failles de sécurité"
Je n'ai jamais eu l'intention de le faire.

"c'est te remplir un log qui te sert à rien. Tu comptes faire quoi avec les logs ?"
Tout le monde n'a pas la même vision des choses, ce n'est pas parce que toi tu ne vois aucune utilité que ça n'en a aucune. Le but ici est de fournir un log qui permette d'évaluer les besoin d'un serveur afin d'essayer de luter contre ces bots qui pourrissent le web afin de mettre en place les solutions adaptée. D'un point de vue personnel je ne souhaite pas prendre des solutions de protection à l'aveuglette et ici j'ai un moyen de simplifier la visualisation des robots afin de ne pas perdre de temps à passer en revue error_log et access_log.

"Si je peux me permettre, sans méchanceté aucune, tu as une certaine tendance à cela toi aussi :)"
J'avoue, mais là sur le coup je n'ai pas apprécié ce que j'ai perçu comme une agression gratuite sans fondement contre moi et me suis un peu emporté.

"elle consomme des ressources pour des logs improbables."
La consommation de ressource de ce script est minime, surtout si l'on utilise un serveur dédié. Comme dit ce script à la base je l'ai fait pour moi afin de répondre à mes besoins, et contrairement à la plupart des personnes je n'utilise aucun hébergement mutualisé ou tout autre chose de ce genre. Pour moi, que ce soit pour l'entreprise dans laquelle je suis actuellement ou pour mon cas personnel, le contrôle total et l'accès physique à la machine sont des éléments très importants.

"Tant qu'à faire je préfère encore utiliser un htaccess basé sur une liste d'adresses IP / domaines reconnus et mis à jour très fréquemment. Au moins on se préserve des risques."
Pour ma part je préfère utiliser les virtualhost pour balancer un RedirectPermanent sur toutes les requêtes n'utilisant pas les noms de domaines que j'ai prévu, et donc les bots qui scannent des plages d'adresses et ne connaissent que l'IP du serveur pour y accéder.

"tu as bien de la chance, car moi j'en rencontre un paquet qui n'ont pas de user-agent."
C'est fort possible, mais peut-être confond-tu avec ce qui semble être un bug d'IE6 ? J'ai constaté que certains IE (qui ne sont pas des bots) font régulièrement des requêtes à l'insue de l'utilisateur sur certains éléments visiblement mis en cache et que, dans le cas d'IE6, lors de ces requêtes aucun user-agent n'est transmis. Ceci dit je ne connais pas ton cas et ça très bien ne pas être ça, je ne fait ici qu'une supposition.

"Pour le code lui même, forcément, je n'ai pas grand chose à dire (mais il y en a quand même quelques unes :o))"
Si tu as des remarques n'hésites pas, il est toujours préférable de montrer les erreurs des autres (les miennes dans le cas présent) afin de faire progresser dans le bon sens.

"Disont que j'ai une tendance (peut-être trop) forte à critiquer les solutions sécurités qui ne fonctionnent pas vraiment. Je m'en excuse."
Je n'ai jamais prétendu avoir fait une solution de sécurisation, c'est une solution permettant l'évaluation des risques.

"J'ai souligné qu'une des principales problématiques des bots et scanners étaient la fréquence souvent élevées des requêtes ce qui bouffent de la bandwidth et du processeur pour les autres connexions et qu'une protection contre ceux-ci devrait avant tout intégrer ce genre de protection."
On est bien d'accord sur les troubles causés par ces bots cependant, pour être d'une efficacité optimale, ta solution doit s'adapter au cas de ton serveur.

Commentaire de 35201 le 23/11/2009 11:33:42 9/10

Bien utile dans certains cas. Merci

Commentaire de LeFauve42 le 23/11/2009 11:45:30

Salut,

Se proteger de ce genre de desagrements est toujours galere, et il est dur d'avoir une solution 100% efficace, mais dans tous les cas il est toujours instructif de jeter un oeil a ce genre de source.

Donc, merci de partager ton experience avec nous !

Sinon, j'ai decouvert ce matin une solution qui a l'air assez complete, bien que recente : CrawlProtect (http://www.crawlprotect.com/fr/)

C'est principalement base sur du .htaccess (et je ne suis donc pas sur que ca filtre les tentatives d'injection par methode POST).

J'aime aussi moyen le fait de ne pas pouvoir changer le path d'installation (encore qu'on peut certainement, en editant les .htaccess, mais je n'ai pas eu le temps de regarder en details) mais je serais curieux de savoir ce que vous pensez de cette approche.

Eric

Commentaire de TychoBrahe le 23/11/2009 13:34:54

Bonjour,

Vu que la question de la protection (et non de la détection) revient régulièrement dans les commentaires, je me permet de laisser quelques liens vers des articles traitant du sujet :
(en) http://johannburkard.de/blog/www/spam/introduction-to-blocking-spambots-and-bad-bots.html
(en) http://johannburkard.de/blog/www/spam/updated-spam-bot-and-bad-bot-list.html
(en) http://johannburkard.de/blog/www/spam/effective-spam-bot-blocking.html
(fr) http://tycho.dyn-o-saur.com/index.php?post/2009/10/18/%C3%89viter-les-vulnerability-scanners-sur-un-serveur-web

Bien entendu, utiliser cette source permet d'aider à évaluer les meilleurs moyens à mettre en place mais égalent à vérifier leur efficacité.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Les sockets php [ par PtitKev ] Bonjour&nbsp;&#224; toutes et a tous.Voila je test un bot socket en php. Je me suis rendu compte que les variables &#233;taient propre a une page donc faire un bot en php [ par lunetoile ] salut &#224; tous, j'aimerais r&#233;aliser un bot simple&nbsp;en php &nbsp;mais suis d&#233;butant...j'aimerais qu'il y ai un espace pour parler, et Projet de bot irc [ par emilrom ] Bonjour, Je cherche un bon codeur en tcl, C, php, python dans le but de cr&#233;e un bot irc qui doit, par l'interm&#233;diaire de socket, g&#233;rer Compteurs de visites et Google Bot [ par MadM@tt ] Salut à tous,Voilà j'ai récemment installé des compteurs divers sur un site (Xiti gratuit, compteur de visites principal et compteur de téléchargement ALICE AIML [ par olbingo974 ] Bonjour,Apres avoir installé un composant sous joomla pour afficher un bot pandora sur mon site je me suis plongé tête baissée dans ce sujet super int indexage de google et autre bot [ par theblob01 ] salut !! voila javais une petite question qui me trotait dans la tete vue que jai commencer par aprendre php/sql et que jarrive plus ou moin a me deme Creation d'un bot pour skyblog ( aide ) [ par djhanzo ] Bonjour je veux crée un bot pour la plateforme skyblog qui mais des commentaires sur un blog automatiquement voila des sites qui on le bot http://plei Ajout d'un bot sur chat ajax open source ? [ par Near78 ] Bonjour, J'ai télécharger il y a quelques heurs de cela un chat en ajax open source. Je suis actuellement de faire sa traduction car celui ci etant e Bot Twitter [ par Senny26 ] Salut à tous ! Bon, vous allez certainement me prendre pour un fou, mais vous êtes (presque) mon seul recours. Apres une semaine de recherches infruc


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,420 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales