Script anti aspirateur sans bdd

Description

salut tout le monde
mon premier script php poster sur phpsc.com
je me suis inspirer de plusieur script.
Voici un script anti aspirateur en php
ce script empeche les aspirateur de site indesirable

en cree un fichier .htaccess a la racine de votre site qui bannira les ip indesirable
avec la commande deny from $REMOTE_ADDR //$REMOTE_ADDR = adresse ip

se script vous avertie par mail d'une attaque avec plus de precision
heure, adresse ip, nom du dns, methode utiliser, navigateur utiliser

ce script cree aussi un journal devenement apeller ip.txt

Source / Exemple :


/*code html liens invisible a METRE TOUT EN HAUT DE LA PAGE (ses le premier lien que vera l'aspirateur)*/

<a href="nolink.php"></a>
<a href="nolink.php"></a>
<a href="nolink.php"></a>
<a href="nolink.php"></a>
<a href="nolink.php"></a>
<a href="nolink.php"></a>

//nolink.php
  
<?php

//Definie les variables dans une array
//TODO mettre dans un fichier..

$bots = array("Googlebot/2.1 (+http://www.google.com/bot.html)","msnbot-media/1.0 (+http://search.msn.com/msnbot.htm)",

"Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)",

"Googlebot/2.1","msnbot/1.0","msnbot/0.3",

"Yahoo! Slurp",

"VoilaBot BETA 1.2",

"ZyBorg/1.0","Mozilla/4.0 compatible ZyBorg/1.0 (wn.zyborg@looksmart.net; http://www.WISEnutbot.com)",

"Mozilla/4.0 compatible ZyBorg/1.0 (wn.zyborg@looksmart.net http://www.WISEnutbot.com)",

"FAST-WebCrawler/3.6 ","FAST-WebCrawler/3.7/FirstPage",

" FAST-WebCrawler/3.8",

"DeepIndex"," Mozilla/2.0 (compatible; Ask Jeeves/Teoma)

","Ask Jeeves/Teoma",

"appie 1.1 ","Gigabot/1.0","HenriLeRobotMirago

","psbot","Szukacz/1.5 ",

"Openbot/3.0","Openfind data gatherer","dloader(NaverRobot)/1.0","

Googlebot/2.1","msnbot/1.0 (+http://search.msn.com/msnbot.htm)",

"Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)",

"Mozilla/5.0 (compatible; Yahoo! DE Slurp; http://help.yahoo.com/help/us/ysearch/slurp)","

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)",

"Octora Beta - www.octora.com","Mozilla/5.0 (compatible; Yahoo! Slurp China; http://misc.yahoo.com.cn/help.html)","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Google Wireless Transcoder;)","Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4","Nokia6820/2.0 (4.83) Profile/MIDP-1.0 Configuration/CLDC-1.0 (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Crazy Browser 1.0.5)","Googlebot-Image/1.0","Evaal/0.7.1 (Evaal; http://search.evaal.com/bot.html; bot@evaal.com)");

$user = $_SERVER['HTTP_USER_AGENT'];

if (in_array($user, $bots) ) //Si le user agent n'est pas definit dans l'array

{

	exit;  //Si il et dans la liste un quit le script

}

else
{

	//Si le user agent n'est pas dans la liste on le bannie

	$adresseip= $_SERVER['REMOTE_ADDR'];

	$fichier = fopen(".htaccess", "a");

	fputs($fichier,"deny from ");             

	fputs($fichier, $_SERVER[REMOTE_ADDR]."\n");        

	fclose($fichier);        

	$host = gethostbyaddr($REMOTE_ADDR);       

	$ladate  =  date ("  d M Y, G:i:s "); 

	$fichier = fopen("ip.txt", "a");

	fputs($fichier,"$ladate. ");            

	fputs($fichier,$adresseip. " ");      

	fputs($fichier, "dns $host \n ");       

	fclose($fichier);          

	include ("mail.php");

}                   

?>

//mail.php

<?php

$ladate  =  date ("   d M Y, G:i:s ");

$to = "e-mail..";

$remaddr = $_SERVER['REMOTE_ADDR'];

$remreq = $_SERVER['REQUEST_URI'];

$remmeth = $_SERVER['REQUEST_METHOD'];

$usragnt = $_SERVER['HTTP_USER_AGENT'];

$host = gethostbyaddr($_SERVER['REMOTE_ADDR']);

$provenance = $_SERVER['HTTP_REFERER'];

$lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];

$from = "email...";

$msg .= "L'URL demandé : $remreq \n";         

$msg = "Subject: Un aspirateur a detecter\n";

        $msg .= "L'adresse IP : $remaddr a été bloquée le $ladate \n";

        $msg .= "L'URL demandé : $remreq \n";

        $msg .= "Navigateur utilisé : $usragnt \n";

        $msg .= "Méthode utilisée : $remmeth \n";

        $msg .= "Nom de domaine : $host \n";

        $msg .= "Provenance : $provenance \n";

        $msg .= "Langue : $lang \n";

mail($to, "Aspirateur", $msg);

?>

Conclusion :


mon script sera mise a jour

j'ai eu aucun probleme avec ce script

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.