Deine Stimme gegen Armut - Banner

Knowledge Base » Spam-Registrierungen verhindern

Hallo, in diesem Tutorial geht es darum, wie man die Registrierung von Spambots in einem phpBB2 verhindern kann. Ich werde dazu ein Snippet erläutern, dass mir in meinem alten Forum viele nervige Registrierungen erspart hat.

Oftmals senden die Bots einfach vorgefertigte HTTP-Header zum Registrieren an die profile.php. Genau da setzt das Snippet an. Es funktioniert, indem man die Felder zum Eintragen der Profil-Informationen bei der Registrierung ausblendet. Die Spambots mit ihren standart HTTP-Headern versuchen in die Felder trozdem etwas einzutragen (besonders beliebt sind die Website- und Signaturfelder), bekommen eine Fehlermeldung und können sich somit nicht registrieren.

Als erstes müssen also die Felder ausgeblendet werden. Dies macht man mit folgender Codeänderung:

Code:  [ Download ] [ Erweitern
#
#-----[ OPEN ]------------------------------------------
#
templates/<style name>/profile_add_body.tpl

#
#-----[ FIND ]------------------------------------------
#
     <td class="catSides" colspan="2" height="28">&nbsp;</td>

#
#-----[ BEFORE, ADD ]------------------------------------------
#
     <!-- BEGIN switch_user_logged_in -->

#
#-----[ FIND ]------------------------------------------
#
   <tr>
     <th class="thSides" colspan="2" height="25" valign="middle">{L_PREFERENCES}</th>

#
#-----[ REPLACE WITH ]------------------------------------------
#
   <!-- END switch_user_logged_in -->
   <tr>
     <th class="thSides" colspan="2" height="25" valign="middle">{L_PREFERENCES}
     <!-- BEGIN switch_user_logged_out -->
     (Profil-Informationen nach der Registrierung im Profil verfügbar!)
     <!-- END switch_user_logged_out -->
     
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM


Als nächstes überprüft man, ob beim Absenden in die Eingabefelder trozdem etwas eingetragen wurde. Dazu benutzt man folgenden Code:

Code:  [ Download ] [ Erweitern
#
#-----[ OPEN ]------------------------------------------
#
includes/usercp_register.php

#
#-----[ FIND ]------------------------------------------
#
   validate_optional_fields($icq, $aim, $msn, $yim, $website, $location, $occupation, $interests, $signature);

#
#-----[ AFTER, ADD ]------------------------------------------
#
   // Spam-Protection
   if ($mode == 'register' && (!empty($icq) || !empty($aim) || !empty($msn) || !empty($yim) || !empty($website) || !empty($location) || !empty($occupation) || !empty($interests) || !empty($signature)))
   {
      $error = TRUE;
      $error_msg .= (( isset($error_msg)) ? '<br />' : '') . 'Bitte entferne die Profil-Informationen.';
   }

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


Das wars auch schon. An dieser Stelle möchte ich noch auf einen Beitrag von AmigaLink hinweisen, der sehr informativ über Spambots und diverse Gegenmaßnahmen informiert. Viel Erfolg!