Script php Anti aspirateur.
-

Renardrouge - Nouveau WRInaute

- Messages: 47
- Inscription: 19 Nov 2002
Elles ont aussi l'inconvénient de ne plus être là quand le serveur mysql redémarre, sur chaque instruction il faut tester l'existance de la table et faire une recreation au cas ou, ca complique, ca augmente la charge cpu... J'ai vu un bench que les perfs etaient 15% meilleures. Je ne sais pas si ca vaut le coup au final.
Le champ auto, c'est pas grave, il est perrissable je pense
(comme d'autres j'ai bien noté merci de tes mp tres interessants).

Le champ auto, c'est pas grave, il est perrissable je pense
(comme d'autres j'ai bien noté merci de tes mp tres interessants).
- Eservice
- WRInaute passionné

- Messages: 1463
- Inscription: 18 Sep 2002
Bonsoir, après plusieurs discussions avec Renardrouge, les améliorations du script SQL sont les suivantes :
L'heure est au format hhmm et les valeurs par défaut sont inutiles dans ce schéma (adapté à MySQL).
Je laisse le soin à Renardrouge de modifier le script PHP de son oeuvre intéressante.
- Code: Tout sélectionner
CREATE TABLE ip (
ip char(15) NOT NULL,
heure smallint(4) UNSIGNED NOT NULL,
cpt tinyint(2) UNSIGNED NOT NULL,
PRIMARY KEY (ip)
) TYPE=MyISAM;
CREATE TABLE ip_bl (
ip char(15) NOT NULL,
date date NOT NULL,
PRIMARY KEY (ip)
) TYPE=MyISAM;
L'heure est au format hhmm et les valeurs par défaut sont inutiles dans ce schéma (adapté à MySQL).
Je laisse le soin à Renardrouge de modifier le script PHP de son oeuvre intéressante.
-

Renardrouge - Nouveau WRInaute

- Messages: 47
- Inscription: 19 Nov 2002
Quelqu'un a réalisé une version sans base de données (fichiers à la place).
(pour les perf globales d'une machine je ne sais pas si c'est meilleur).
Et une version utilisant des tables en mémoire.
URL sur demande, ou je vais finir par les poster ici, au choix.
(pour les perf globales d'une machine je ne sais pas si c'est meilleur).
Et une version utilisant des tables en mémoire.
URL sur demande, ou je vais finir par les poster ici, au choix.
- Eservice
- WRInaute passionné

- Messages: 1463
- Inscription: 18 Sep 2002
Le problème d'un fichier est que sur des accès simultanés il y a un risque de corruption ou de perte de données, d'autant plus que les accès sont en lecture/écriture/suppression.Renardrouge a écrit:Quelqu'un a réalisé une version sans base de données (fichiers à la place).
(pour les perf globales d'une machine je ne sais pas si c'est meilleur).
-

Kmacleod - WRInaute accro

- Messages: 3418
- Inscription: 28 Nov 2002
Comme dit précédement, la page est interdite d'acces aux robots, seul les aspirateurs y entrent et tombent dans la trappe.
Comme le lien est caché pour les visiteurs, il ne tombe pas non plus dedans.
Certains mettent un lien non caché avec une image explicite et une information sur la barre status pour les visiteurs
Comme le lien est caché pour les visiteurs, il ne tombe pas non plus dedans.
Certains mettent un lien non caché avec une image explicite et une information sur la barre status pour les visiteurs
- Jocelyn
- WRInaute impliqué

- Messages: 564
- Inscription: 6 Nov 2002
Le problème d'un fichier est que sur des accès simultanés il y a un risque de corruption ou de perte de données, d'autant plus que les accès sont en lecture/écriture/suppression.
Exact !
Mais on peut tout de même utiliser les fichiers si on prend soin de correctement vérouiller et dévérouiller leur accès. Voir la fonction flock() pour plus de précisions.
http://php.net/flock
Jocelyn
-

Renardrouge - Nouveau WRInaute

- Messages: 47
- Inscription: 19 Nov 2002
La personne qui a réalisé la version fichier a utilisé des locks.
- Eservice
- WRInaute passionné

- Messages: 1463
- Inscription: 18 Sep 2002
Certes cette fonction améliore la fiabilité, même si il s'applique à la totalité du fichier.Jocelyn a écrit:Mais on peut tout de même utiliser les fichiers si on prend soin de correctement vérouiller et dévérouiller leur accès. Voir la fonction flock()
Mais il s'ensuit une attente en cas de verrouillages concurentiels, qui peut s'avérer rédhibitoire à partir d'un certain traffic, d'autant plus qu'ici, un seul fichier texte est géré pour toutes les pages du site et qu'un aspirateur "hit" à fond la caisse.
A partir d'un certain seuil de volume d'informations ou de fréquence de modifications, la seule solution viable est un SGBD, notamment grâce à un verrouillage plus fin et à une recherche plus rapide d'un sous-ensemble de lignes.
- AlainM
- WRInaute discret

- Messages: 56
- Inscription: 6 Mar 2003
moi j'ai une solution toutes simple, ce pas efficace à 100% mais permet deja de ien limites les choses :
- Code: Tout sélectionner
<?
$killUser=0;
$userAgent = eregi_replace("/", "", $_SERVER["HTTP_USER_AGENT"]);
// ---------------- Liste d'Aspi ----------------
$NameAspi = Array ("Anonymous", "Wget","WebStripper",
"MSIECrawler","HTTPConnect","WebZIP",
"Teleport","Downloader","AdNetTrack",
"WebCopier","LinkWalker","Indy","HTTrack", "eCatch",
"Hébergement","guillaume","larbin");
// ---------------- Verification ----------------
for ($i = 0; $i <= count($NameAspi)-1; $i++) {
if(eregi($NameAspi[$i],$userAgent,$a)) {
$KillUser = 1; // pour killer à la fin du scripts
}
}
if($KillUser){
// ---------------- Refuse l'IP dy mec ----------------
// ajouter un crontab qui enleve les ban toutes les x mn
$htaccess="\nDeny from ".$_SERVER["REMOTE_ADDR"];
$fp = fopen("/home/folder/www/.htaccess","a");
fputs($fp,$htaccess);
fclose($fp);
exit;
}
?>
-

Kmacleod - WRInaute accro

- Messages: 3418
- Inscription: 28 Nov 2002
La gestion par .htaccess est bien mais permet tout de même de laisser generer 1.000 hits en erreur 403 certes, mais 1.000 hits. (la BP est protégée, mais pas les hits)
Je suis en train de tester la porte ouverte sur le .htacces mais blocage dans la navigation ensuite si exces selon le script de renardrouge
Je suis en train de tester la porte ouverte sur le .htacces mais blocage dans la navigation ensuite si exces selon le script de renardrouge
-

Renardrouge - Nouveau WRInaute

- Messages: 47
- Inscription: 19 Nov 2002
Le pb c'est que se baser sur l'user agent ser pas a arrêter bcp de monde.
Juste le 1er acces de ton aspi.
Le 2eme coup le gars aura changé l'user agent.
Efficacité entre 0 et 5% je dirais.

Juste le 1er acces de ton aspi.
Le 2eme coup le gars aura changé l'user agent.
Efficacité entre 0 et 5% je dirais.
-

Renardrouge - Nouveau WRInaute

- Messages: 47
- Inscription: 19 Nov 2002
Tiens je viens de choper un truc au nom rigolo et plein de promesses...
User Agant: Mozilla / PICgrabber - www.movies-free.net
Mettez à jour vos .htaccess
User Agant: Mozilla / PICgrabber - www.movies-free.net
Mettez à jour vos .htaccess
-

Yvan - WRInaute occasionnel

- Messages: 295
- Inscription: 6 Nov 2002
Et c'est le type même de l'aspirateur de site camouflé ! Puisque qu'il "recherche le web", enfin le site qu'on lui a demandé de chercher !
Franchement Renard Rouge, ton script est vraiment très puissant, j'ai déjà arrêté 4 IP qui ne m'ont pas demandé d'être réautorisé sur mon site. Je les ai supprimé de la blacklist, et elles ne sont toujours pas repassées. Parfait !
A plus,
Yvan.
Franchement Renard Rouge, ton script est vraiment très puissant, j'ai déjà arrêté 4 IP qui ne m'ont pas demandé d'être réautorisé sur mon site. Je les ai supprimé de la blacklist, et elles ne sont toujours pas repassées. Parfait !
A plus,
Yvan.
Lectures recommandées sur ce thème :
- Mon script anti-aspirateur a blacklisté googlebot.
- Script anti-aspirateur et Google (et les autres...)
- anti-aspirateur
- Anti aspirateur URGENT ?
- mod_rewrite et anti aspirateur
- /!\ aspirateur de site et anti référencement ...
- .htaccess anti-aspirateur de site
- [Résolu] Pb htaccess anti-aspirateur email
- Anti aspirateur: ne pas bloquer Google
- Anti aspirateur de site : une idée
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
