Seite 5 von 16

Verfasst: 26.03.2006 15:56
von Dennis63
@patti2005: Den Bot hatte ich leider auch schon. Ich hatte zwei Supportzonen für Gäste geöffnet. Schade, daß die Spammer es anderen Usern somit schwieriger machen.

Grüße
Dennis

Verfasst: 26.03.2006 16:50
von AmigaLink
Zum Problem mit den Gastpostings von Spambots:

Code: Alles auswählen

############################################################## 
## MOD Title: Visual Confirmation for Guests 
## MOD Author: Kanuck < aaron@kanuck.net > (Aaron Adams) http://kanuck.net/ 
## MOD Description: Adds visual confirmation for guest posts, eliminating spam. 
## MOD Version: 1.0.1 
## 
## Installation Level: Easy 
## Installation Time: 3 Minutes 
## Files To Edit: posting.php, templates/subSilver/posting_body.tpl 
## Included Files: n/a 
############################################################## 
## For Security Purposes, Please Check: http://www.phpbb.com/mods/ for the 
## latest version of this MOD. Downloading this MOD from other sites could cause malicious code 
## to enter into your phpBB Forum. As such, phpBB will not offer support for MOD's not offered 
## in our MOD-Database, located at: http://www.phpbb.com/mods/ 
############################################################## 
## Author Notes: None 
## 
############################################################## 
## MOD History: 
## 
##   2005-02-18 - Version 1.0.1 
##      - It works now. No more parse errors. 
## 
############################################################## 
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD 
############################################################## 

# 
#-----[ OPEN ]------------------------------------------ 
# 

posting.php 

# 
#-----[ FIND ]------------------------------------------ 
# 

/*************************************************************************** 
 * 
 *   This program is free software; you can redistribute it and/or modify 
 *   it under the terms of the GNU General Public License as published by 
 *   the Free Software Foundation; either version 2 of the License, or 
 *   (at your option) any later version. 
 * 
 ***************************************************************************/ 
  
# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 

/* 

   png visual confirmation system : (c) phpBB Group, 2003 : All Rights Reserved 

*/ 

# 
#-----[ FIND ]------------------------------------------ 
# 

      case 'editpost': 
      case 'newtopic': 
      case 'reply': 
       
# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 

         if ( $board_config['enable_confirm'] && !$userdata['session_logged_in'] ) 
         { 
            if ( empty($HTTP_POST_VARS['confirm_id']) || empty($HTTP_POST_VARS['confirm_code']) ) 
            { 
               $error = TRUE; 
               $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Confirm_code_wrong']; 
            } 
            else 
            { 
               $confirm_id = htmlspecialchars($HTTP_POST_VARS['confirm_id']); 
               if (!preg_match('/^[A-Za-z0-9]+$/', $confirm_id)) 
               { 
                  $confirm_id = ''; 
               } 
                
               $sql = 'SELECT code 
                  FROM ' . CONFIRM_TABLE . " 
                  WHERE confirm_id = '$confirm_id' 
                     AND session_id = '" . $userdata['session_id'] . "'"; 
               if (!($result = $db->sql_query($sql))) 
               { 
                  message_die(GENERAL_ERROR, 'Could not obtain confirmation code', __LINE__, __FILE__, $sql); 
               } 
       
               if ($row = $db->sql_fetchrow($result)) 
               { 
                  if ($row['code'] != $HTTP_POST_VARS['confirm_code']) 
                  { 
                     $error = TRUE; 
                     $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Confirm_code_wrong']; 
                  } 
                  else 
                  { 
                     $sql = 'DELETE FROM ' . CONFIRM_TABLE . " 
                        WHERE confirm_id = '$confirm_id' 
                           AND session_id = '" . $userdata['session_id'] . "'"; 
                     if (!$db->sql_query($sql)) 
                     { 
                        message_die(GENERAL_ERROR, 'Could not delete confirmation code', __LINE__, __FILE__, $sql); 
                     } 
                  } 
               } 
               else 
               {       
                  $error = TRUE; 
                  $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Confirm_code_wrong']; 
               } 
               $db->sql_freeresult($result); 
            } 
         } 

# 
#-----[ FIND ]------------------------------------------ 
# 

// Generate smilies listing for page output 
generate_smilies('inline', PAGE_POSTING); 

# 
#-----[ BEFORE, ADD ]------------------------------------------ 
# 

// 
// Visual confirmation for guests 
// 
$confirm_image = ''; 
if( !$userdata['session_logged_in'] && (!empty($board_config['enable_confirm'])) ) 
{ 
   $sql = 'SELECT session_id 
      FROM ' . SESSIONS_TABLE; 
   if (!($result = $db->sql_query($sql))) 
   { 
      message_die(GENERAL_ERROR, 'Could not select session data', '', __LINE__, __FILE__, $sql); 
   } 
    
   if ($row = $db->sql_fetchrow($result)) 
   { 
      $confirm_sql = ''; 
      do 
      { 
         $confirm_sql .= (($confirm_sql != '') ? ', ' : '') . "'" . $row['session_id'] . "'"; 
      } 
      while ($row = $db->sql_fetchrow($result)); 
    
      $sql = 'DELETE FROM ' .  CONFIRM_TABLE . " 
         WHERE session_id NOT IN ($confirm_sql)"; 
      if (!$db->sql_query($sql)) 
      { 
         message_die(GENERAL_ERROR, 'Could not delete stale confirm data', '', __LINE__, __FILE__, $sql); 
      } 
   } 
   $db->sql_freeresult($result); 
    
   $confirm_chars = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',  'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',  'U', 'V', 'W', 'X', 'Y', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9'); 
    
   list($usec, $sec) = explode(' ', microtime()); 
   mt_srand($sec * $usec); 
    
   $max_chars = count($confirm_chars) - 1; 
   $code = ''; 
   for ($i = 0; $i < 6; $i++) 
   { 
      $code .= $confirm_chars[mt_rand(0, $max_chars)]; 
   } 
    
   $confirm_id = md5(uniqid($user_ip)); 
    
   $sql = 'INSERT INTO ' . CONFIRM_TABLE . " (confirm_id, session_id, code) 
      VALUES ('$confirm_id', '". $userdata['session_id'] . "', '$code')"; 
   if (!$db->sql_query($sql)) 
   { 
      message_die(GENERAL_ERROR, 'Could not insert new confirm code information', '', __LINE__, __FILE__, $sql); 
   } 
    
   unset($code); 
    
   $confirm_image = (@extension_loaded('zlib')) ? '<img src="' . append_sid("profile.$phpEx?mode=confirm&id=$confirm_id") . '" alt="" title="" />' : '<img src="' . append_sid("profile.$phpEx?mode=confirm&id=$confirm_id&c=1") . '" alt="" title="" /><img src="' . append_sid("profile.$phpEx?mode=confirm&id=$confirm_id&c=2") . '" alt="" title="" /><img src="' . append_sid("profile.$phpEx?mode=confirm&id=$confirm_id&c=3") . '" alt="" title="" /><img src="' . append_sid("profile.$phpEx?mode=confirm&id=$confirm_id&c=4") . '" alt="" title="" /><img src="' . append_sid("profile.$phpEx?mode=confirm&id=$confirm_id&c=5") . '" alt="" title="" /><img src="' . append_sid("profile.$phpEx?mode=confirm&id=$confirm_id&c=6") . '" alt="" title="" />'; 
   $hidden_form_fields .= '<input type="hidden" name="confirm_id" value="' . $confirm_id . '" />'; 
    
   $template->assign_block_vars('switch_confirm', array()); 
} 

# 
#-----[ FIND ]------------------------------------------ 
# 

   'SMILIES_STATUS' => $smilies_status, 

# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 

   'CONFIRM_IMG' => $confirm_image, 
    
# 
#-----[ FIND ]------------------------------------------ 
# 

   'L_DELETE_POST' => $lang['Delete_post'], 

# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 

   'L_CONFIRM_CODE_IMPAIRED'   => sprintf($lang['Confirm_code_impaired'], '<a href="mailto:' . $board_config['board_email'] . '">', '</a>'), 
   'L_CONFIRM_CODE' => $lang['Confirm_code'], 
   'L_CONFIRM_CODE_EXPLAIN' => $lang['Confirm_code_explain'], 

# 
#-----[ OPEN ]------------------------------------------ 
# 

templates/subSilver/posting_body.tpl 

# 
#-----[ FIND ]------------------------------------------ 
# 

   {POLLBOX} 

# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 

   <!-- Visual Confirmation --> 
   <!-- BEGIN switch_confirm --> 
   <tr> 
      <td class="row1" colspan="2" align="center"><span class="gensmall">{L_CONFIRM_CODE_IMPAIRED}</span><br /><br />{CONFIRM_IMG}<br /><br /></td> 
   </tr> 
   <tr> 
     <td class="row1"><span class="gen">{L_CONFIRM_CODE}: * </span><br /><span class="gensmall">{L_CONFIRM_CODE_EXPLAIN}</span></td> 
     <td class="row2"><input type="text" class="post" style="width: 200px" name="confirm_code" size="6" maxlength="6" value="" /></td> 
   </tr> 
   <!-- END switch_confirm --> 

# 
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ 
# 
# EoM 

Verfasst: 26.03.2006 16:52
von AmigaLink
(Shit hier darf man ja nicht Editieren. :-? )

Eine andere, nicht uninteressante, Lösung wäre z.B. auch noch dieses Projekt: http://www.oxpus.de/viewtopic.php?t=4993

Verfasst: 28.03.2006 21:55
von Sir Charles
AmigaLink hat geschrieben:(Shit hier darf man ja nicht Editieren. :-? )

Eine andere, nicht uninteressante, Lösung wäre z.B. auch noch dieses Projekt: http://www.oxpus.de/viewtopic.php?t=4993
das darf man als Gast aber nicht lesen... :wink:

Verfasst: 28.03.2006 22:04
von Sascha Müller
Die Version 2.0.20 von phpBB wird das Problem ja sicherlich gelöst haben denke ich. :)

Wollen wir nur noch abwarten, bis diese Version released ist. :)

Verfasst: 28.03.2006 22:16
von skyski
Unter anderem hat sich auch jtfoe1974 bei mir angemeldet, ich lösche bei denen immer die www, mehr hinterlassen sie nicht, den Benutzer lasse ich stehen, dann meldet er sich nicht nochmal an.

Verfasst: 29.03.2006 12:49
von silva07
Sascha Müller hat geschrieben:Die Version 2.0.20 von phpBB wird das Problem ja sicherlich gelöst haben denke ich. :)
Weiß jemand wann die ungefähr rauskommt?

jtfoe1974 hat sich bei mir auch angemeldet, gepostet hat aber noch kein Bot.

Verfasst: 29.03.2006 12:53
von Sascha Müller
silva07 hat geschrieben:
Sascha Müller hat geschrieben:Die Version 2.0.20 von phpBB wird das Problem ja sicherlich gelöst haben denke ich. :)
Weiß jemand wann die ungefähr rauskommt?
In der Vergangenheit erschienen die Versionen immer ca. im Drei-Monats-Rythmus. Die Version 2.0.19 kam zum Jahresende 2005 heraus. Die Version 2.0.20 dürfte also jeden Tag erscheinen!

Verfasst: 29.03.2006 13:06
von larsneo
In der Vergangenheit erschienen die Versionen immer ca. im Drei-Monats-Rythmus.
wie berechnest du diesen durchschnitt?
Mon Feb 21, 2005 -> 2.0.12
Sun Feb 27, 2005 -> 2.0.13
Fri Apr 15, 2005 -> 2.0.14
Sat May 07, 2005 -> 2.0.15
Mon Jun 27, 2005 -> 2.0.16
Wed Jul 20, 2005 -> 2.0.17
Mon Oct 31, 2005 -> 2.0.18
Fri Dec 30, 2005 -> 2.0.19

Verfasst: 29.03.2006 13:08
von Sascha Müller
larsneo hat geschrieben:
In der Vergangenheit erschienen die Versionen immer ca. im Drei-Monats-Rythmus.
wie berechnest du diesen durchschnitt?
Mon Feb 21, 2005 -> 2.0.12
Sun Feb 27, 2005 -> 2.0.13
Fri Apr 15, 2005 -> 2.0.14
Sat May 07, 2005 -> 2.0.15
Mon Jun 27, 2005 -> 2.0.16
Wed Jul 20, 2005 -> 2.0.17
Mon Oct 31, 2005 -> 2.0.18
Fri Dec 30, 2005 -> 2.0.19
Stimmt, sogar noch kürzer! :D

Ich hatte jetzt gerade nur auf den Zeitraum zwischen 2.0.17 und 2.0.19 geachtet. ;)

Na von dem her brennt die Version 2.0.20 ja schon förmlich! :-?