Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

HOOVERKILLER 2 -> BLOQUER LES ASPIRATEURS DE SITES


Information sur la source

Catégorie :Sécurité & Cryptage Niveau : Débutant Date de création : 25/06/2003 Date de mise à jour : 26/06/2003 21:40:15 Vu / téléchargé: 3 672 / 246

Note :
8 / 10 - par 2 personnes
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (18)
Ajouter un commentaire et/ou une note

Description

Bon ma première version avait soulevée quelques suggestions ;)

C'est donc en cette journée de la St-Jean Baptiste (devenir québécois pour comprendre) que je temine le V2 de mon bloqueur d'aspirateur de sites : HooverKiller.

Le code est assez complexe et est tout expliqué sur mon site  
 

Source

  • www.filesdepot.com
  • Voici le code de base, le principe.
  • Allez cependant sur le site pour voir si le code n'aurait pas évoilé (surement) et avoir l'exemple complet. Il évolue tout le temps, alors je ne le mets pas au complet ici.
  • <!-- Le lien (caché) qui trompe les aspirateurs -->
  • <div style="visibility:hidden;position:absolute"><a href="webhoover.php">filesdepot.com</a></div>
  • <?
  • include("incl/sql.php"); //Inclure les infos de connection à la base
  • $connect=mysql_connect($host,$user,$pass) or die ($impserv); //Connection à la base
  • mysql_select_db($base, $connect) or die ($impbas); //Sélection de la DB
  • ?>
  • <?
  • $IP=$REMOTE_ADDR;
  • $result=mysql_query("SELECT * FROM hooverkiller WHERE IP = '$IP' LIMIT 1") or die($requete);;
  • $row = mysql_fetch_array($result);
  • $fp=fopen("incl/config.txt","r"); //Charge la liste des IPs à ne pas bannir (celle des moteurs de recherche par exemple)
  • $titre=fgets($fp,20000);
  • $url=fgets($fp,20000);
  • $motscles=fgets($fp,20000);
  • $adminname=fgets($fp,20000);
  • $adminmail=fgets($fp,20000);
  • $image=fgets($fp,20000);
  • $fermerpage=fgets($fp,20000);
  • while(!feof($fp)){
  • $listerobots.=fgets($fp);
  • }
  • $listerobots=str_replace("\n"," ",$listerobots); //Remplace les retours à la ligne par des espaces
  • fclose($fp);
  • if($row["IP"]!=""){ //Si l'IP existe dans la liste des bannis
  • if($row["banned"]>=time()){ //Si la durée de 5 minutes de ban N'est PAS passée
  • if(SUBSTR($fermerpage,0,1)==2){
  • echo "<script>opener=self;self.close()</script>";
  • exit;
  • }else{
  • echo "<script>document.location='ipbannie.php'</script>"; //Renvoie le client à la page indiquant que l'IP est bannie
  • exit;
  • }
  • }else{ //Si la durée de 5 minutes de ban EST passée
  • mysql_query("DELETE * FROM hooverkiller WHERE IP = '".$REMOTE_ADDR."'") or die($requete);
  • //On suprime l'IP de la liste (histoire de pas prendre de place)
  • }
  • }
  • ?>
www.filesdepot.com


Voici le code de base, le principe.
Allez cependant sur le site pour voir si le code n'aurait pas évoilé (surement) et avoir l'exemple complet. Il évolue tout le temps, alors je ne le mets pas au complet ici.

<!-- Le lien (caché) qui trompe les aspirateurs -->
<div style="visibility:hidden;position:absolute"><a href="webhoover.php">filesdepot.com</a></div>
<?
include("incl/sql.php"); //Inclure les infos de connection à la base
$connect=mysql_connect($host,$user,$pass) or die ($impserv); //Connection à la base
mysql_select_db($base, $connect) or die ($impbas); //Sélection de la DB
?>
<?
$IP=$REMOTE_ADDR;
$result=mysql_query("SELECT * FROM hooverkiller WHERE IP = '$IP' LIMIT 1") or die($requete);;
$row = mysql_fetch_array($result);

$fp=fopen("incl/config.txt","r"); //Charge la liste des IPs à ne pas bannir (celle des moteurs de recherche par exemple)
 $titre=fgets($fp,20000);
 $url=fgets($fp,20000);
 $motscles=fgets($fp,20000);
 $adminname=fgets($fp,20000);
 $adminmail=fgets($fp,20000);
 $image=fgets($fp,20000);
 $fermerpage=fgets($fp,20000);
while(!feof($fp)){
 $listerobots.=fgets($fp);
}
$listerobots=str_replace("\n"," ",$listerobots);  //Remplace les retours à la ligne par des espaces
fclose($fp);


if($row["IP"]!=""){ //Si l'IP existe dans la liste des bannis
 if($row["banned"]>=time()){ //Si la durée de 5 minutes de ban N'est PAS passée
  if(SUBSTR($fermerpage,0,1)==2){
   echo "<script>opener=self;self.close()</script>";
   exit;
  }else{
   echo "<script>document.location='ipbannie.php'</script>"; //Renvoie le client à la page indiquant que l'IP est bannie
   exit;
  }
 }else{ //Si la durée de 5 minutes de ban EST passée
  mysql_query("DELETE * FROM hooverkiller WHERE IP = '".$REMOTE_ADDR."'") or die($requete);
  //On suprime l'IP de la liste (histoire de pas prendre de place)
 }
}
?>

Conclusion

Selon les suggestions:
-&gt; Les IPs bloquées sont stoquées en MySQL
-&gt; Un robots.txt est créé pour sécuriser les moteurs de recherche
-&gt; Le lien n'est plus une image mais un lien caché
-&gt; Si l'IP est bloquée, on redirige vers une page contenant les Mots Clés de votre site (si des moteurs de recherche tombent qd même dans le piège)  
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de Nox le 25/06/2003 06:42:58

Il existe une autre technique:
compter le nombre de pages demandées en 1 minute sur le serveur et bloquer l'IP.

J'ai vui l'astuce sur un script qu'on peut télécharger sur www.telecharger.com (cherchez "aspirateur").

Le pb avec sa c'est que si la personne fait "précédent" plein de fois, elle risque de tomber dans le piège.
Deuxièmement, l'aspirateur aura 1 minute pour aspirer avant qu'il ne soit bloqué..

Psycomaxter (max12) me suggérait de renvoyer le client à une adresse erronée, ex: "http://www.joke.com/existe_pas.html" ... ce qui fait que le serveur reeoutne une Erreur 404. L'aspirateur décidera donc de ne pas télécharger la page (de p-e arrêter au complet?) Cet astuce permet aussi de ne pas surcharger votre bande passante!

Le seul pb avec cette astuce, c'est que si un moteur de recherche ne prend pas en charge "robots.txt", il indexera votre page (ou pas du tout) avec une erreur 404 comme description

Bon tout sa pour dire que ça bloque, mais pas au complet... Microsoft reste meilleur que moi ;)
essayez d'aspirer www.hotmail.com !

signaler à un administrateur
Commentaire de Nox le 26/06/2003 06:33:33

Bon une version 2.1 est sortie !

signaler à un administrateur
Commentaire de Bricomix le 26/06/2003 10:03:39

Le truc du robots.txt c'est obsolète pour les nouveaux aspirateurs, ils n'aspireront pas la page !!!

signaler à un administrateur
Commentaire de Nox le 27/06/2003 22:32:40

c'est ske jme suis dit... mais c'est en option, rien ne vous retient de l'enlever ;)

signaler à un administrateur
Commentaire de matrey le 29/06/2003 23:16:59

j'ai pas pu déposer ma version que j'avais "promise" dans les commentaires de la v1 de hooverkiller...
Ptit conseil : un formulaire de débannissement, pour que si on se récupère l'IP de qqun on ne soit pas bloqué, et aussi une durée de bannissement un peu plus longue (en général c'est 6 heures, mais c'est discutable)...

signaler à un administrateur
Commentaire de Nox le 01/07/2003 22:18:04

Baf de te facon l'aspirateur de site prendra pas 6 heures a aspirer ;)

matrey jcomprend pas ton idée de form ?!?! explique sa a  lair interessant :p

Jai trouvé une autre methode:
allez sur www.filesdepot.com/fif
et aspirez www.filesdepot.com/fif

La ligne de l'ID du navigateur change puisque les aspirateurs n'ont PAS d'ID de navigateur  :p

signaler à un administrateur
Commentaire de matrey le 03/07/2003 13:45:04

ben si tu enregistre les IPs bannies dans MySQL, tu peux proposer comme sur CodeS-SourceS un formulaire ou tu rentre ton IP pour la débannir manuellement...

signaler à un administrateur
Commentaire de cyrilnd01 le 03/07/2003 20:45:01

ce qui est con c que sa bloque les moteur de recherche sa quel dommages !!!

signaler à un administrateur
Commentaire de Nox le 03/07/2003 20:46:32

cyrilnd01 : sa les bloques pas ! : robots.txt

signaler à un administrateur
Commentaire de Nox le 03/07/2003 20:47:19

matrey : ouais bonne ID, mais comme le BAN est de 5 minutes....
pi fau ben tu paye un peu pour avoir tenté d'aspirer :p

signaler à un administrateur
Commentaire de Nox le 05/07/2003 08:34:47

VERSION 2.2 DISPONIBLE !!

elle corrige la faille du au "robots.txt" (les nouveaux aspirateurs contournaient le piège)

elle a une nouvelle technique de bloquage

elle bloque complètement l'Aspirateur...


Tentez d'aspirer: www.filesdepot.com
Si quelqu'un réussit SVP dites moi le!!!!!!!!!!!! ;)

signaler à un administrateur
Commentaire de SkyCrasher le 30/11/2003 23:16:26

Je pense que j'ai trouvé mieux :
en faisant un &lt;? echo "$HTTP_USER_AGENT";?&gt;
on peut déterminer si c'est une personne , un robot ou un aspirateur !
mais après il faudrai référencer tous les aspirateurs et dire si :

if($HTTP_USER_AGENT=="ia archiver"){
echo "Les aspirateurs ne sont pas acceptés !";
}else{
include "page.php";
}

Bon c'est un travail monstre pour référencer tous les aspirateurs du monde entier mais c'est une solution plus simple !

signaler à un administrateur
Commentaire de spider987 le 02/12/2003 12:25:21

je pense que l'idée de SkyCrasher est bonne mais il est vrai que référencer tous les aspirateurs du monde entier est un travail monstre.
Alors pourquoi ne pas plutot référencer les différents robots et navigateurs connus dans une table, référencer les différents aspirateur connus dans une autre table et avoir a ce moment la une table pour les agent qui ne sont ni référencé dans la table des robot/navigateur et ni dans la table aspirateur.

Il suffit de vérifier si HTTP_USER_AGENT est trouver dans une des deux premières table et si pas, référencer celui ci dans la troisième table et pourquoi pas, envoyer un mail a l'admin, afin de pouvoir faire des recherches sur cette agent.

Cette idée me semble bonne mais bon faut plancher dessus.

Enfin je par pour barcelogne pendant une semaine mais quand je revien je posterais une source exposant mon idée.

Spider987

PS : En attendant j'utilise toujour la source de Nox, alors merci Nox

signaler à un administrateur
Commentaire de frentchy le 15/12/2003 13:18:03

Moi je recherche une version asp.net, je recherche de partout mais rien.

signaler à un administrateur
Commentaire de Jackboy le 15/12/2003 21:03:12

Tous est aspirer (filesdepot.com) sans aucun problème !!!

Le site en entier avec HTTrack!!!!

Donc la fonctionnalité est a vérifier, non...

signaler à un administrateur
Commentaire de affiliatel le 13/11/2004 17:04:52

lol :-) ptdr !!
le coup du :
"essayer d'aspirer hotmail m'a fait trop rire"

signaler à un administrateur
Commentaire de affiliatel le 13/11/2004 17:06:08

sinon,
il suffit de chercher sous google htaccess et aspirateur pour trouver les meilleurs protections possibles

signaler à un administrateur
Commentaire de kiki67100 le 04/12/2007 12:51:59

affiliatel > Oui j'ai fait un source en utilisant le .htaccess

http://www.phpcs.com/codes/SCRIPT-ANTI-ASPIRATEUR-SANS-BDD_41297.aspx

PS( $LECODE str_replace('<?',<?php,$LECODE); replace <? => <?php



++

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,343 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.