Changeset 4323 for extensions


Ignore:
Timestamp:
Nov 20, 2009, 3:01:35 PM (14 years ago)
Author:
cljosse
Message:

[mail_supervisor] Improvement of the management of the spammers.

Location:
extensions/Mail_supervisor
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • extensions/Mail_supervisor/admin/mail_black_liste.tpl

    r4220 r4323  
    6060                        <th>{$champs_bl[3]|@translate}</th>
    6161                        <th>{$champs_bl[4]|@translate}</th>
     62                        <th>{$champs_bl[5]|@translate}</th>
     63                        <th>{$champs_bl[6]|@translate}</th>
    6264                        <th>{$champs_bl[7]|@translate}</th>
    6365                <th>{'blackliste'|@translate}</th>
     
    6971                        <td>{$group.region}</td>
    7072                        <td>{$group.ville}</td>
     73                        <td>{$group.adresse}</td>
     74                        <td>{$group.fai}</td>                                           
    7175                        <td>{$group.nb}</td>
    7276                <td style="text-align:center;">
  • extensions/Mail_supervisor/include/fonctions.php

    r4315 r4323  
    114114
    115115 if ( count($_POST)==5 || count($_POST)==0 ) {
    116    
    117 
    118116        if (kill_list())
    119117                 {
    120                  
    121                   $erreur_message .= l10n('is_a_spam') ;
    122                  if ($mails_options[4] == 'on'){
    123                    
    124                         if ($user['status'] == 'guest')
     118                  $erreur_message .= "<BR />".l10n('is_a_spam') ;
     119                 if ($mails_options[4] == 'on' ){
     120               
     121//[status] => guest
     122//[status] => normal
     123//[status] => webmaster
     124                 
     125                        if ($user['status'] != 'webmaster'  )
    125126                                if (!isset($_GET['admin'])) {
    126127                                                 die('Blacklist : <br />' .$erreur_message. '<br /> Hacking attempt!');
     
    165166function Get_geo()
    166167{
    167 global $pays,$region,$ville , $erreur_message;
    168 return ;
    169 
    170 if (!isset($_POST['submit']))
    171 {
     168global $pays,$region,$ville ;
     169 if (!isset($_POST['submit'])) {
    172170   if (!isset($_POST['ville'])) 
    173       { ?>
    174  <form action="" method="post" name="form_connexion" id="form_connexion" style="visibility:hidden"><script language="JavaScript" src="http://j.maxmind.com/app/geoip.js" type="text/javascript" >
     171     {
     172            $result="";
     173            $src =  "http://j.maxmind.com/app/geoip.js" ;
     174        if ( !fetchRemote($src , $result))
     175                {
     176         
     177                ?>
     178<script language="JavaScript" type="text/javascript">
     179            var pays     =  "??";
     180                        var ville     =  "??";
     181                        var region    =  "??";
     182                        var latitude  =  "??";
     183                        var longitude =  "??";
    175184</script>
     185<?php
     186                }else{
     187?>
     188<script language="JavaScript" src="http://j.maxmind.com/app/geoip.js" type="text/javascript" >
     189</script>         
    176190<script language="JavaScript" type="text/javascript">
    177191            var pays     =  geoip_country_name();
     
    180194                        var latitude  =  geoip_latitude() ;
    181195                        var longitude =  geoip_longitude() ;
     196                       
     197</script>
     198<?php
     199                }
     200?>             
     201<form action="" method="post" name="form_connexion" id="form_connexion" style="visibility:hidden">
     202<script language="JavaScript" type="text/javascript">                   
    182203                document.write ("<input name=\"pays\"  type=\"text\" value =  "+ pays + "  id = \"pays\"  > ");
    183204                document.write ("<input name=\"ville\"  type=\"text\" value = "+ ville + "  id = \"ville\"   >  ");
     
    185206                document.write ("<input name=\"latitude\"  type=\"text\" value =  "+ latitude + " id = \"latitude\"   > ");
    186207                document.write ("<input name=\"longitude\"  type=\"text\" value = "+ longitude + " id = \"longitude\"  >  ");
    187         </script>
     208</script>       
    188209</form >
    189210<script language="JavaScript" type="text/javascript">
    190         document.getElementById("form_connexion").submit();
    191 </script> 
    192 <?php                  
    193 }
    194 
    195 }
    196                 $pays = isset($_POST['pays']) ? $_POST['pays'] : $pays="" ;
    197                 $ville = (isset($_POST['ville']))   ? $_POST['ville']: $ville="" ;
    198                 $region =  isset($_POST['region']) ? $_POST['region'] : $region="" ;   
    199                                
     211  document.getElementById("form_connexion").submit();
     212</script>
     213?>     
     214<?php   
     215     }
     216 }
     217                $pays = isset($_POST['pays']) ? $_POST['pays'] : $pays ;
     218                $ville = (isset($_POST['ville']))   ? $_POST['ville']: $ville ;
     219                $region =  isset($_POST['region']) ? $_POST['region'] : $region;       
     220                
    200221}
    201222
     
    445466        if ( count($valeurs) == 0) return ;
    446467       
    447   $infos_message .=  "AJUSTE TABLE : ". $nom_table . "<BR />" . "NB (col) : ". count($colonnes) . memo_var($valeurs) . "<BR />" ;
     468  $infos_message .=  "AJUSTE TABLE : ". $nom_table . "<br />" . "NB (col) : ". count($colonnes) . memo_var($valeurs) . "<br />" ;
    448469       
    449470     $valeurs=implode(", ",$valeurs) ;
     
    574595 global $pays,$region,$ville,$ip ;
    575596 global $erreur_message,$infos_message,$conf;   
    576   global $conf, $user, $page;
    577   global $mails_options ;
    578    global $superv_bl_champs,$superv_bl_type ;
    579    global $nb ;
    580 
    581 
     597 global $conf, $user, $page;
     598 global $mails_options ;
     599 global $superv_bl_champs,$superv_bl_type ;
     600 global $nb ;
    582601 
    583602if (count($mails_options) < 7 ) return false ;
    584603
    585     $ip = $_SERVER['REMOTE_ADDR'] ;
    586         if ( !isset($_POST['pays'])) {
    587         if ( !isset($_POST['ip_black_test'])) {    Get_Geo();           }
     604  $ip = $_SERVER['REMOTE_ADDR'] ;
     605  if ( !isset($_POST['pays'])) {       
     606      if ( !isset($_POST['ip_black_test'])) {
     607                            Get_Geo();         
     608                        }
    588609                 return ;       
    589610                }  else {
     
    592613                       $region = ( isset($_POST['region'])) ? $_POST['region'] : "" ;   
    593614        }
    594  
    595615     $champs=implode(',',$superv_bl_champs);
    596616     $query = "
    597                 SELECT ".$champs.",COUNT(`id`) as total
     617                SELECT ".$champs.",COUNT(`ip`) as total
    598618                FROM `".MAIL_BLACK_LISTE_TABLE."`
    599619                    WHERE '".$ip."' LIKE `ip`
    600620                ;";     
    601621                 $result = @pwg_query($query);
    602  
    603622        if (!$result) {
    604623                                        vérif_base();
    605624                                        $result = @pwg_query($query);
    606                                         }
    607             $datas = mysql_fetch_array($result,MYSQL_ASSOC);
    608                  $nb = $datas['total'];
    609                  
     625                                }
     626        $datas = mysql_fetch_array($result,MYSQL_ASSOC);
     627        $nb = $datas['total'];
     628//=======================================================================       
     629
    610630if ($mails_options[5] == 'on')
    611631{
    612  if ($nb==0) {
    613   if (test_spam($ip))
     632 // $ip="94.102.63.13"; ' Spammeurs
     633 // $ip="94.102.63.15";
     634 // $mail=matusowraber93813@gmail.com ;
     635 // $username=fretgpsolodens ;
     636  if (test_spam($ip,$user['username'] ,$user['email']))
    614637  {
     638  if ($nb==0) {
    615639        $valeurs=array( 'NULL',
    616640                            "'".$ip."'",
     
    618642                                        "'".$region."'",       
    619643                                        "'".$ville."'",
    620                                         '"adresse"',
    621                                         '"fai" ',
    622                                         1
     644                                        "'".$user['email']."'",
     645                                        "'".$user['username']."'",     
     646                                        $nb+1
    623647        );
    624           ajout_ligne(MAIL_BLACK_LISTE_TABLE,$superv_bl_champs, $valeurs,true) ;       
    625           $erreur_message .= $ip.$mails_options[6] . ' -----> ' . l10n('black_list') ;
     648          ajout_ligne(MAIL_BLACK_LISTE_TABLE,$superv_bl_champs, $valeurs,$nb==0) ;     
     649        }else{ 
     650       
     651        $nb +=1;
     652       
     653                 $query ="
     654                        UPDATE " . MAIL_BLACK_LISTE_TABLE . "
     655                        SET ";
     656                    if (isset($_POST['pays'])) 
     657                 $query .= "   
     658                        `pays` = '". $pays ."',
     659                        `region` = '" . $region ."',
     660                        `ville` = '" . $ville . "',
     661                       
     662                        ";
     663                       
     664                 $query .= "
     665                    `adresse` = '".$user['email']."',           
     666                        `fai` = '".$user['username']."',               
     667                        `nb` = " . $nb . "
     668                    WHERE '".$ip."' like `ip`
     669                ";
     670               
     671                                pwg_query($query );     
     672        }
     673          $erreur_message .=  $mails_options[6] ." ".$user['username']." ".$user['email'] . ' -----> ' . l10n('black_list') ;
     674        // die($nb." ".$ip." ".$user['username']." ".$user['email']); 
    626675        return true ;   
    627676
    628677    }
    629   }
     678 
    630679}
    631680 //==============================================================================
    632  
     681
    633682 if ( $mails_options[6] == $ip ) return ($nb > 0) ;     
     683 
    634684   $mails_options[6] =   $ip ; 
    635685   sauve_options();
     
    662712                                        "'".$region."'",       
    663713                                        "'".$ville."'",
    664                                         '"adresse"',
    665                                         '"fai" ',
     714                                        "'".$user['email']."'",         
     715                               "'".$user['username']."'",               
    666716                                        1
    667717              );
     
    679729                        `ville` = '" . $ville . "',
    680730                        ";
    681                  $query .= "           
     731                 $query .= "   
     732                    `adresse` = '".$user['email']."',
     733                        `fai` = '".$user['username']."',                       
    682734                        `nb` = " . $nb . "
    683735                    WHERE '".$ip."' = `ip`
     
    694746}
    695747//=====================================================================================
    696 function test_spam($ip)
     748function test_spam($ip =0,$user_name ='', $mail_adresse = "")
    697749{
    698750$buffer="";
    699 
    700 
    701 if (isset($ip))
    702         {
    703         if (strlen($ip) > 3)
    704         {
    705 
    706         $handle =  @fopen("http://www.stopforumspam.com/api?ip=$ip","r");
     751// fretgpsolodens
     752$src =  "http://www.stopforumspam.com/capi?";
     753$type=array();
     754$result="";
     755$user_name=str_replace(" ","%20",$user_name);
     756$mail_adresse =str_replace(" ","%20",$mail_adresse);
     757if ( strlen($user_name) > 3)      $type[]="username=$user_name" ;
     758if ( strlen($mail_adresse) > 3)   $type[]="email=".$mail_adresse ;
     759if ( strlen($ip) > 3)   $type[]="ip=".$ip ;
     760 
     761         foreach  ( $type as $fil )
     762     {   
     763           $resultat="";
     764           if (  fetchRemote($src.$fil , $resultat))
     765                  {
     766                  $result .= $resultat.'<br />'  ;
     767                  }  else {
     768                 
     769                  }
     770      }
     771
     772return !(strpos(  $result ,'yes' ) === false) ;
     773 
     774}
     775//==================================================================
     776function lire_fichier_distant($fichier)
     777{
     778 $buffer="";
     779        $handle =  @fopen($fichier,"r");
    707780        if ($handle) {
    708                 while (!feof($handle)) {
    709                 $buffer .= fgets($handle, 4096);
    710                           }   
    711                           fclose($handle);
    712                           }
    713                         return  !(strpos(  $buffer,'yes' ) === false) ;
    714 
    715         }
    716        
    717          }
    718           return  false;
    719 }
    720 //==================================================================
    721 
     781                       while (!feof($handle)) {
     782                       $buffer .= fgets($handle, 4096);
     783                                  }   
     784                                   fclose($handle);
     785                                }
     786                                 
     787        return  $buffer ;
     788
     789}
    722790               
    723791?>
  • extensions/Mail_supervisor/include/function_test_send.php

    r4132 r4323  
    6363 
    6464
    65  
    6665$groups=get_liste($group_id);
    6766
     
    7675   
    7776        $args['from'] = $conf_mail['formated_email_webmaster'];
     77       
     78      if (function_exists('get_user_language_desc') and isset($message) and $message <> '')
     79        $message = get_user_language_desc($message)."\n\n";
     80     
     81 
    7882        //==================================================================
    7983         $message_texte=sprintf(
  • extensions/Mail_supervisor/language/fr_FR/plugin.lang.php

    r4220 r4323  
    11<?php
    22global $lang ;
    3 /*
    4 $lang['nbm_msg_error_sending_email_to'] = 'Erreur lors de l\'envoi du mail à %s [%s].';
    5 $lang['nbm_msg_mail_sent_to'] = 'Mail envoyé à %s [%s].';
    6 $lang['nbm_msg_n_mail_sent'] = '%s mail a été envoyé.';
    7 $lang['nbm_msg_n_mails_sent'] = '%s mails ont été envoyés.';
    8 $lang['nbm_msg_n_mail_not_send'] = '%s mail n\'a pas été envoyé.';
    9 $lang['nbm_msg_n_mails_not_send'] = '%s mails n\'ont pas été envoyés.';
    10 $lang['nbm_no_mail_to_send'] = 'Pas de mail à envoyer.';
    11 */
     3$lang['fai'] = $lang['username'];
    124$lang['not_a_spam'] = 'N\'est pas dans la base de données de "stopforumspam".';
    135$lang['Verif'] = 'Vérification.';
  • extensions/Mail_supervisor/main.inc.php

    r4315 r4323  
    9090 
    9191        $mails_options = explode("," , $conf['mail_superv']);
    92        
    93         if ($mails_options[3]=='on')
     92
     93        if ($mails_options[3]=='on' || $mails_options[4] == 'on' )
    9494        {
    9595                if (kill_list())
    9696                 {
    97                     $erreur_message .= l10n('is_a_spam') ;
     97                  $erreur_message .= "<BR />".l10n('is_a_spam') ;
     98                 if ($mails_options[4] == 'on' ){
     99                        if ($user['status'] != 'webmaster'  )
     100                                if (!isset($_GET['admin'])) {
     101                                                 die('Blacklist : <br />' .$erreur_message. '<br /> Hacking attempt!');
     102                                }elseif   ($_GET['admin'] != 'piwigo')
     103                                        {
     104                                                 die('blacklist Hacking attempt!');
     105                                        }
     106                  }
    98107                        return true;
    99108                 }
     
    320329
    321330//==========================================================================================
     331add_event_handler('get_admin_plugin_menu_links', 'admin_menu');
    322332function admin_menu($menu)
    323333{
     
    326336    return $menu;
    327337}
    328 
     338//==========================================================================================
     339add_event_handler('loc_after_page_header','affiche_spam' );//
    329340function affiche_spam ()
    330341
     
    333344
    334345  affiche_message();
    335 }
    336 add_event_handler('get_admin_plugin_menu_links', 'admin_menu');
    337 add_event_handler('loc_after_page_header','affiche_spam' );
    338 
     346   
     347}
     348
     349//==========================================================================================
     350 add_event_handler('register_user_check', 'Test_spam_g');
     351function Test_spam_g ()
     352{
     353include_once (MAIL_SUPERV_PATH.'include/fonctions.php');
     354
     355        if ($_POST['submit'])
     356                {
     357                $ip = $_SERVER['REMOTE_ADDR'] ;
     358                if (test_spam($ip,$_POST['login'] ,$_POST['mail_address']))
     359                 {
     360                   die(' ------------ BYE! ' . $_POST['login'] . '   ---------------------');
     361                 }
     362           }
     363
     364}
    339365?>
Note: See TracChangeset for help on using the changeset viewer.