Changeset 67657 in spip-zone for _plugins_/nospam


Ignore:
Timestamp:
Nov 11, 2012, 10:50:20 AM (7 years ago)
Author:
cedric@…
Message:

Ajouter des logs sur tous les cas de moderation
Cas de flood : corriger le log errone car $nb etait mal affecte
Severiser les seuils preventifs car ici on ne modere pas directement, on est juste plus severe sur la detection par les liens

Location:
_plugins_/nospam
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/nospam/nospam_pipelines.php

    r67330 r67657  
    122122                  // on sera plus severe sur les liens dans ce cas
    123123                  // cas du spammeur qui envoie que des messages a 3 liens a haute frequence (passe a travers tous les filtres)
    124                   // au bout du 10e message on va moderer tout message avec un lien
     124                  // au bout du 5e message en <10min ou 10e en <30min on va moderer tout message avec un lien
    125125                  if (!$spammeur_connu){
    126                           if ($nb=sql_countsel('spip_forum','(ip='.sql_quote($GLOBALS['ip']).$email.') AND '.sql_date_proche('date_heure','-30','minute'))>10){
     126                          if (($nb=sql_countsel('spip_forum','(ip='.sql_quote($GLOBALS['ip']).$email.') AND '.sql_date_proche('date_heure','-30','minute')))>=7){
    127127                          spip_log("[Flood] $nb message pour (ip=".$GLOBALS['ip']."$email) dans les 30 dernieres minutes",'nospam');
    128128                          $spammeur_connu = true;
     
    130130                  }
    131131                  if (!$spammeur_connu){
    132                           if ($nb=sql_countsel('spip_forum','(ip='.sql_quote($GLOBALS['ip']).$email.') AND '.sql_date_proche('date_heure','-10','minute'))>5){
     132                          if (($nb=sql_countsel('spip_forum','(ip='.sql_quote($GLOBALS['ip']).$email.') AND '.sql_date_proche('date_heure','-10','minute')))>=3){
    133133                          spip_log("[Flood] $nb message pour (ip=".$GLOBALS['ip']."$email) dans les 10 dernieres minutes",'nospam');
    134134                          $spammeur_connu = true;
     
    138138                        // si c'est un spammeur connu,
    139139                        // verifier que cette ip n'en est pas a son N-ieme spam en peu de temps
    140                         // a partir d'un moment on refuse carrement le spam massif
     140                        // a partir d'un moment on refuse carrement le spam massif, le posteur devra attendre pour reposter
    141141                        if ($spammeur_connu) {
    142                                 // plus de 10 spams dans les dernieres 2h, faut se calmer ...
    143                                 // ou plus de 30 spams dans la dernieres 1h, faut se calmer ...
     142                                // plus de 30 spams dans les dernieres 2h, faut se calmer ...
     143                                // ou plus de 10 spams dans la dernieres 1h, faut se calmer ...
    144144                                if (
    145                                         ($nb = sql_countsel('spip_forum', 'statut=\'spam\' AND (ip=' . sql_quote($GLOBALS['ip']) . $email . ') AND ' . sql_date_proche('date_heure','-120','minute'))) > 10
     145                                        ($nb = sql_countsel('spip_forum', 'statut=\'spam\' AND (ip=' . sql_quote($GLOBALS['ip']) . $email . ') AND ' . sql_date_proche('date_heure','-120','minute'))) >= 30
    146146                                        OR
    147                                         ($nb = sql_countsel('spip_forum', 'statut=\'spam\' AND (ip=' . sql_quote($GLOBALS['ip']) . $email .') AND ' . sql_date_proche('date_heure','-60','minute'))) > 30
     147                                        ($nb = sql_countsel('spip_forum', 'statut=\'spam\' AND (ip=' . sql_quote($GLOBALS['ip']) . $email .') AND ' . sql_date_proche('date_heure','-60','minute'))) >= 10
    148148                                        ){
    149149                                        $flux['data']['statut'] = ''; // on n'en veut pas !
     
    177177                                        // s'il y a du contenu caché avec des styles => spam direct
    178178                                        $flux['data']['statut'] = 'spam';
     179                                        spip_log("\t" . $flux['data']['auteur'] . "\t" . $GLOBALS['ip'] . "\t" . "requalifié en spam car contenu cache", 'nospam');
    179180                                }
    180181                                elseif ($infos['nombre_liens'] > 0) {
     
    182183                                        if ($infos['caracteres_texte_lien_min'] < 3) {
    183184                                                $flux['data']['statut'] = 'prop'; // en dur en attendant une idee plus generique
     185                                                spip_log("\t" . $flux['data']['auteur'] . "\t" . $GLOBALS['ip'] . "\t" . "requalifié en prop car moins de 3car hors liens", 'nospam');
    184186                                        }
    185187
     
    208210                        // verifier qu'un message identique n'a pas ete publie il y a peu
    209211                        if ($flux['data']['statut'] != 'spam') {
    210                                 if (sql_countsel('spip_forum', 'texte=' . sql_quote($flux['data']['texte']) . " AND statut IN ('publie','off','spam')") > 0)
     212                                if (sql_countsel('spip_forum', 'texte=' . sql_quote($flux['data']['texte']) . " AND statut IN ('publie','off','spam')") > 0){
    211213                                        $flux['data']['statut'] = 'spam';
     214                                        spip_log("\t" . $flux['data']['auteur'] . "\t" . $GLOBALS['ip'] . "\t" . "requalifié en spam car message identique deja existant", 'nospam');
     215                                }
    212216                        }
    213217                        // verifier que cette ip n'en est pas a son N-ieme post en peu de temps
    214218                        // plus de 5 messages en 5 minutes c'est suspect ...
    215219                        if ($flux['data']['statut'] != 'spam') {
    216                                 if (($nb = sql_countsel('spip_forum', 'ip=' . sql_quote($GLOBALS['ip']) . ' AND ' . sql_date_proche('date_heure','-5','minute'))) > 5)
     220                                if (($nb = sql_countsel('spip_forum', 'ip=' . sql_quote($GLOBALS['ip']) . ' AND ' . sql_date_proche('date_heure','-5','minute'))) >= 5){
    217221                                        $flux['data']['statut'] = 'spam';
    218                                 #spip_log("$nb post pour l'ip ".$GLOBALS['ip']." dans les 5 dernieres minutes",'nospam');
     222                                        spip_log("[Flood2] $nb message pour (ip=".$GLOBALS['ip']."$email) dans les 5 dernieres minutes : requalif en spam",'nospam');
     223                                }
    219224                        }
    220225                }
  • _plugins_/nospam/plugin.xml

    r67650 r67657  
    1010        <icon>images/nospam-32.png</icon>
    1111        <licence>(c) 2008 GPL</licence>
    12         <version>1.0.5</version>
     12        <version>1.0.6</version>
    1313        <etat>stable</etat>
    1414        <description><multi>
Note: See TracChangeset for help on using the changeset viewer.