fyury
20 déc. 2007 à 10:37
Erf, peut être que ce topique date mais ce que je vais vous passer est intéressant ce n'est pas mon script mais c'est très facile à faire :
d'abord le flood c'est sois encombrer des bases de donnée par des caractères ou des requêtes c'est pour ça que des con utilise des programme fait par d'autre et la seul chose qu'il modifie dans un programme de bas level c'est :
while(1)
{}
enfin bref sinon on peut DOSs c'est flooder un serveur envoyer des requêtes jusqu'a un bug très chiant car le serv. ne prend pas tout en charge et donc oublie des requêtes et mes du temps a gérer chaque chose en son temps c'est ça pour lui ;p.
Apres les Boost ou BOT ça c'est encore plus con mais facile a éviter quand le mec fait 50post a la suite pour bousiller le topique :). -_-.
Donc voila la source si ça peut servir :
SOURCE PHP
<?php
//connexion à la bdd
mysql_connect("", "", "");
mysql_select_db("");
//données sur le visiteur
$timestamp = time();
$ip = $_SERVER["REMOTE_ADDR"];
//on regarde si l'ip existe déjà dans la table
$ip_select=mysql_query("select ip from antiflood where ip='$ip'");
//si elle existe déjà
if (mysql_num_rows($ip_select) != 0)
{
$timestamp_select=mysql_query("select timestamp from antiflood where ip='$ip'");
$timestamp_select=mysql_fetch_array($timestamp_select);
//on donne le nombre de seconde entre deux requêtes en dessous duquel une ip flood
$anti_flood = $timestamp_select['timestamp'] + 1;
if ($timestamp < $anti_flood)
{
$warning_select=mysql_query("select warning from antiflood where ip='$ip'");
$warning_select=mysql_fetch_array($warning_select);
$warning = $warning_select['warning'] + 1;
//si l'ip flood on lui incrémente +1 en avertissement
mysql_query("UPDATE antiflood SET warning = $warning WHERE ip='$ip'");
//si ça flood pas beaucoup on affiche un petit avertissement
if ($warning > 30)
{
echo "<script>alert('STOP FLOOD')</script>";
}
//si ça flood beaucoup on ban l'ip
if ($warning > 60)
{
echo "<script>alert('BAN')</script>";
$log = fopen(".htaccess", "a");
$ip = $REMOTE_ADDR;
fwrite($log, " deny from $ip");
fclose($log);
}
}
//on met à jour le timestamp
mysql_query("UPDATE antiflood SET timestamp = ". time() ." WHERE ip='$ip'");
}
//si l'ip n'existe pas dans la table
else
{
mysql_query("INSERT INTO antiflood VALUES('', '$ip', ". time() .", '0')");
}
//pour finir on vire toutes les entrées dont le timestamp est plus vieux de 5 minutes
$timestamp_5min = time() - (60 * 5);
mysql_query('DELETE FROM antiflood WHERE timestamp < ' . $timestamp_5min);
?>
Auteur: PH03N!X
language: PHP
Script anti-flood simple :).
A plus.