Ignore:
Timestamp:
11/20/09 15:01:35 (10 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.