Diskussion zu Automatische Anmeldungen in phpBB-Boards

Projekte der phpBB.de-Community und Feedback zu phpBB.de.
Dennis63
Ehemaliges Teammitglied
Beiträge: 2597
Registriert: 02.07.2003 18:46

Beitrag 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
Benutzeravatar
AmigaLink
Mitglied
Beiträge: 1417
Registriert: 09.06.2003 21:56
Wohnort: NRW
Kontaktdaten:

Beitrag 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 
Benutzeravatar
AmigaLink
Mitglied
Beiträge: 1417
Registriert: 09.06.2003 21:56
Wohnort: NRW
Kontaktdaten:

Beitrag 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
Benutzeravatar
Sir Charles
Mitglied
Beiträge: 371
Registriert: 23.01.2006 11:27
Wohnort: Wien
Kontaktdaten:

Beitrag 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:
Sascha Müller

Beitrag 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. :)
skyski
Mitglied
Beiträge: 141
Registriert: 10.08.2005 19:21

Beitrag 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.
Benutzeravatar
silva07
Mitglied
Beiträge: 302
Registriert: 25.02.2006 01:23
Wohnort: Saarland

Beitrag 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.
Sascha Müller

Beitrag 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!
Benutzeravatar
larsneo
Mitglied
Beiträge: 2622
Registriert: 07.03.2002 15:23
Wohnort: schwäbisch gmünd
Kontaktdaten:

Beitrag 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
gruesse aus dem wilden sueden
larsneo
..::[krapohl.net]::..
Sascha Müller

Beitrag 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! :-?
Antworten

Zurück zu „Community Talk“