Hooverkiller 2 -> bloquer les aspirateurs de sites

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 / Exemple :


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:
-> Les IPs bloquées sont stoquées en MySQL
-> Un robots.txt est créé pour sécuriser les moteurs de recherche
-> Le lien n'est plus une image mais un lien caché
-> 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)

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.