Script php Anti aspirateur.

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


Renardrouge
Nouveau WRInaute
 
Messages: 47
Inscription: Mar Nov 19, 2002 14:31

Message le Dim Fév 16, 2003 19:11

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).
:D

Eservice
WRInaute accro
WRInaute accro
 
Messages: 1463
Inscription: Mer Sep 18, 2002 11:28

Message le Jeu Fév 20, 2003 21:19

Bonsoir, après plusieurs discussions avec Renardrouge, les améliorations du script SQL sont les suivantes :
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: Mar Nov 19, 2002 14:31

Message le Jeu Fév 20, 2003 22:04

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.

Nitou
WRInaute passionné
WRInaute passionné
 
Messages: 929
Inscription: Dim Déc 01, 2002 15:25

Message le Ven Fév 21, 2003 14:54

Moi toujours interressé :wink:

Eservice
WRInaute accro
WRInaute accro
 
Messages: 1463
Inscription: Mer Sep 18, 2002 11:28

Message le Ven Fév 21, 2003 21:24

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).
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.


Kmacleod
WRInaute accro
WRInaute accro
 
Messages: 3418
Inscription: Jeu Nov 28, 2002 15:47

Message le Ven Fév 21, 2003 23:57

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

Jocelyn
WRInaute passionné
WRInaute passionné
 
Messages: 564
Inscription: Mer Nov 06, 2002 9:14

Message le Dim Fév 23, 2003 11:18

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: Mar Nov 19, 2002 14:31

Message le Dim Fév 23, 2003 11:34

La personne qui a réalisé la version fichier a utilisé des locks.

Eservice
WRInaute accro
WRInaute accro
 
Messages: 1463
Inscription: Mer Sep 18, 2002 11:28

Message le Lun Fév 24, 2003 10:50

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()
Certes cette fonction améliore la fiabilité, même si il s'applique à la totalité du fichier.
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
WRInaute discret
 
Messages: 56
Inscription: Jeu Mar 06, 2003 14:44

Message le Ven Mar 07, 2003 17:49

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
WRInaute accro
 
Messages: 3418
Inscription: Jeu Nov 28, 2002 15:47

Message le Ven Mar 07, 2003 18:45

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


Renardrouge
Nouveau WRInaute
 
Messages: 47
Inscription: Mar Nov 19, 2002 14:31

Message le Ven Mar 07, 2003 19:07

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.
:wink:


Renardrouge
Nouveau WRInaute
 
Messages: 47
Inscription: Mar Nov 19, 2002 14:31

Message le Sam Mar 08, 2003 22:35

Tiens je viens de choper un truc au nom rigolo et plein de promesses...
8)

User Agant: Mozilla / PICgrabber - www.movies-free.net


Mettez à jour vos .htaccess :wink:


Yvan
WRInaute impliqué
WRInaute impliqué
 
Messages: 279
Inscription: Mer Nov 06, 2002 8:30

Message le Dim Mar 09, 2003 9:47

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.


PsYlo
WRInaute discret
WRInaute discret
 
Messages: 94
Inscription: Mar Mai 28, 2002 13:13

Message le Mar Mar 11, 2003 14:49

ca m'interesse ton script
c'est plus pour l'apprentissage que pour bloquer d'eventuel aspi
mais c'est toujour bon d'avoir sous la main

merci

Script php Anti aspirateur. Script php Anti aspirateur.

Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités