Comment éviter les téléchargements abusifs ?

Nouveau WRInaute
Bonjour,

Hier mon site a été attaqué (je ne sais absolument pas par qui ni comment) et l'un des plus gros fichiers de celui ci a été téléchargé des milliers de fois, ce qui a biensûr pour conséquence de consommer ma bande passante inutilement (je suis en mutualisé et j'ai le droit à 800Go 'seulement') et de temps à autres à couper l'accès à TOUS mes sites ...

J'ai donc installer un script Captcha : www.walymag.com/index.php?p=mag3 (j'espère que les liens ne sont pas interdits ...)
Mais le mec dernière tout ça n'est pas si bête, il a rentrer son petit code et à pris la nouvelle URL, et la "bomber" à nouveau ...

Résultat je me retrouve à heberger mes "gros fichiers" chez Free pour éviter de surcharger mon hebergement pro, c'est pas terrible ...

Vous auriez une solution pour bloquer les "téléchargements abusifs" de ce genre ?
 
WRInaute accro
Idem, en mémorisant les IP et en redirigeant à partir du 3ème telech. par exemple ?

Edit : grillé par l'écureuil
 
Nouveau WRInaute
Vous sauriez où trouver ce genre de script ?

Mais si possible il faudrait que le téléchargement soit impossible pour une IP pendant un certains lapse de temps seulement, car mes visiteurs peuvent revenir pour à nouveau télécharger ces PDF, faudrait pas les bloquer non plus ...

Merci pour vos conseils :)

Edit : J'ai trouvé ce script, bon c'est pas la même chose, ça permet apparemment juste d'enregistrer et de bannir certaines IPs, mais c'est toujours mieux que de ne pas avoir son IP ^^'
 
Nouveau WRInaute
Merci, mais vous auriez peut etre un script à me proposer ? Malheureusement ce n'est pas encore de mon niveau =$
 
WRInaute accro
lu, voila un anti flood fait maison:

Code:
<?php
// table correspondant aux requetes ci-dessous
CREATE TABLE flood (
  ip varchar(18) NOT NULL default '',
  dernier int(11) NOT NULL default '0',
  PRIMARY KEY  (ip)
) TYPE=MyISAM;


$time_flood = '30'; // 30 secondes

// EXEMPLE

// requete basique pour inserer
mysql_query("INSERT INTO flood VALUES ('$_SERVER[REMOTE_ADDR]', '" . time() . "')");
// requete basique pour supprimer
mysql_query("DELETE FROM flood WHERE dernier + $time_flood < " . time());



// COMMENT PROCEDER ??


$time_flood = '30'; // 30 secondes

// 1° d'abord commencer par supprimer tout ceux dont le temps a expirer
mysql_query("DELETE FROM flood WHERE dernier + $time_flood < " . time());

// 2° ensuite prenez l'ip du visiteur
$resultat = mysql_query("SELECT dernier FROM flood WHERE ip='$_SERVER[REMOTE_ADDR]'");

// 3° Si l'Ip du visiteur est deja dans la table, ai !!
if(mysql_num_rows($resultat) > 0)
    echo 'vous spammez !';

   // 4° sinon tout va bien, reste plus qu'a inserer l'ip de votre visiteur dans la table
   else mysql_query("INSERT INTO flood VALUES ('$_SERVER[REMOTE_ADDR]', '" . time() . "')");

?>
 
WRInaute occasionnel
Merci intéressant, je note précieusement ton script, sinon le problème est résolu pour toi "flow57" ?
 
WRInaute accro
fournir l'url de téléchargement par mail au visiteur, url bien sur temporaire qui se détruit une fois chargée.
 
Nouveau WRInaute
Mon problème est réglé oui, je "m'amuse" avec mon Captcha maintenant ^-^' Désolé du retard.

Par contre un script "anti-flood" pour empecher une IP de télécharger 2x le même fichier en moins de 30sec ça m'intéresse, mais je comprend pas très bien comment me servir du script donné précédemment ?

Merci de votre aide en tout cas ;)
 
Discussions similaires
Haut