Le fuseau horaire est UTC+2 heures




Publier un nouveau sujet Répondre au sujet  [ 5 message(s) ] 
 

Auteur Message
Message Publié : 14 Sep 2009, 11:52 
Debutant
Hors-ligne

Inscription : 02 Août 2009, 13:30
Message(s) : 94
C'est rudimentaire, mais c'est déjà ça :) !

Créez le fichiers anti_ddos.php avec le contenu suivant, puis envoyez-le à la racine de votre site :

Code :
<?php
 
/*
CHMOD /iplog/ to 777
Create and CHMOD /iplog/iplogfile.dat to 666
add the following line in any important .php file in the same directory as your anti_dos.php file so it can check IPs when that file is loaded, best example is index.php if you have it.
include("anti_dos.php"); //anti-DoS, prevents rapid accessing

 if you have a known cookie on your site,
you can use this, otherwise just ignore this, it will set a different limit
for people with this cookie
 
I use yourothercookie as the cookie ID for the forum, my forum uses ID
greater than 0 for all members and -1 for guests and members who have logged out,
so making it match greater than zero means members will get better access and
guests with or without cookies won't

Also I use these cookies in the "flood alert" emails to make sure an important user didn't get banned. Someone could fake a cookie, so always be suspicious. Tez
 */
$cookie = $_COOKIE['cookie1'];
$othercookie = $_COOKIE['cookie2'];


if($cookie && $othercookie > 0) $iptime = 10;  // Minimum number of seconds between visits for users with certain cookie
else $iptime = 10; // Minimum number of seconds between visits for everyone else


$ippenalty = 60; // Seconds before visitor is allowed back


if($cookie && $othercookie > 0)$ipmaxvisit = 30; // Maximum visits, per $iptime segment
else $ipmaxvisit = 15; // Maximum visits per $iptime segment


$iplogdir = "./iplog";
$iplogfile = "iplog.dat";

$ipfile = substr(md5($_SERVER["REMOTE_ADDR"]), -2);
$oldtime = 0;
if (file_exists($iplogdir.$ipfile)) $oldtime = filemtime($iplogdir.$ipfile);

$time = time();
if ($oldtime < $time) $oldtime = $time;
$newtime = $oldtime + $iptime;

if ($newtime >= $time + $iptime*$ipmaxvisit)
{
touch($iplogdir.$ipfile, $time + $iptime*($ipmaxvisit-1) + $ippenalty);
$oldref = $_SERVER['HTTP_REFERER'];
header("HTTP/1.0 503 Service Temporarily Unavailable");
header("Connection: close");
header("Content-Type: text/html");
echo "<html><title>DDoS détecté !</title>
<body bgcolor=#999999 text=#ffffff link=#ffff00>
<font face='Verdana, Arial'><p><b>
<h1>Accès suspendu temporairement.</h1>Trop de pages ont été ouvertes simultanément avec votre adresse IP (plus de ".$ipmaxvisit." visites en ".$iptime." secondes).</b>
";
echo "<br />Attendez ".$ippenalty." secondes et réssayez.</p></font></body></html>";
touch($iplogdir.$iplogfile); //create if not existing
$fp = fopen($iplogdir.$iplogfile, "a");
$yourdomain = $_SERVER['HTTP_HOST'];
   if ($fp)
   {
   $useragent = "<unknown user agent>";
   if (isset($_SERVER["HTTP_USER_AGENT"])) $useragent = $_SERVER["HTTP_USER_AGENT"];
   fputs($fp, $_SERVER["REMOTE_ADDR"]." ".date("d/m/Y H:i:s")." ".$useragent."n");
   fclose($fp);
   $yourdomain = $_SERVER['HTTP_HOST'];
   
   //the @ symbol before @mail means 'supress errors' so you wont see errors on the page if email fails.
if($_SESSION['reportedflood'] < 1 && ($newtime < $time + $iptime + $iptime*$ipmaxvisit))
   @mail('flood_alert@'.$yourdomain, 'site ddos par '.$cookie.' '
   .$_SERVER['REMOTE_ADDR'],'http://'.$yourdomain.' site ddos, ip bannie :'.$_SERVER['REMOTE_ADDR'].' a http://'.$yourdomain.$_SERVER['REQUEST_URI'].' de '.$oldref.' agent '.$_SERVER['HTTP_USER_AGENT'].' '
   .$cookie.' '.$othercookie, "De: ".$yourdomain."n");
   $_SESSION['reportedflood'] = 1;
   }
   exit();
}
else $_SESSION['reportedflood'] = 0;

//echo("loaded ".$cookie.$iplogdir.$iplogfile.$ipfile.$newtime);
touch($iplogdir.$ipfile, $newtime); //this just updates the IP file access date or creates a new file if it doesn't exist in /iplog
?>

Créez un dossier au meme niveau que votre fichier anti_dos.php nommé iplog.

Dans ce dossier, créez le fichier iplog.dat, vide.

Mettez le chmod a 777 sur ce dossier.

Vous pouvez modifier les variables avant d'afficher la page de ddos...

Sur toutes les pages ou vous voulez que le anti ddos soit actif, faites un include en php de anti_dos.php comme ceci :

Code :
<?php
include("anti_dos.php");
?>

Voilà :)


Dernière édition par AstuCity le 14 Sep 2009, 12:02, édité 1 fois.

Haut
 Profil  
Répondre en citant  

Message Publié : 14 Fév 2010, 21:33 
Debutant
Hors-ligne

Inscription : 27 Fév 2009, 10:41
Message(s) : 21
J'ai installer sa sur mon site, merci :)

Je vais me trouver con mais comment on peut le tester ??

_________________
Image


Haut
 Profil  
Répondre en citant  

Message Publié : 15 Fév 2010, 14:52 
Confirmé
Hors-ligne

Inscription : 18 Août 2009, 10:18
Message(s) : 197
Localisation : Paris
On va plutot dire que c'est un script anti-rafraichissement... Du moment que tu en mutualisé je pense que les serveurs de easy-hebergement sont protégés contre les Ddos :p
(Pour avoir essayer avec un ami je confirme ^^)

_________________
Développeur d'application Facebook

Twitter : http://twitter.com/YassBoule_


Haut
 Profil  
Répondre en citant  

Message Publié : 15 Fév 2010, 15:00 
Debutant
Hors-ligne

Inscription : 13 Déc 2009, 20:10
Message(s) : 83
YassBoule a écrit :
On va plutot dire que c'est un script anti-rafraichissement... Du moment que tu en mutualisé je pense que les serveurs de easy-hebergement sont protégés contre les Ddos :p
(Pour avoir essayer avec un ami je confirme ^^)

Moais... Je pense pouvoir down un serveur Web assez facilement...


Haut
 Profil  
Répondre en citant  

Message Publié : 16 Fév 2010, 11:11 
Debutant
Hors-ligne

Inscription : 27 Fév 2009, 10:41
Message(s) : 21
Ok d'accord :D

_________________
Image


Haut
 Profil  
Répondre en citant  

Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 5 message(s) ] 

Le fuseau horaire est UTC+2 heures


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Recherche de :
Aller vers :  
cron
Thème par Easy-Hébergement
Powered by phpBB © 2000, 2002, 2005, 2007, 2011 phpBB Group
Traduit en français par Maël Soucaze.