TPK Guestbook/Gästebuch: Antispam

Da unser TPK Gästebuch die letzte Zeit permanent automatisiert zugespammt wurde, hier eine einfache und schnelle Lösung, die die meisten dieser lästigen Zeitgenossen aussperrt.

Die folgenden Änderungen wurden an einem TPK Guestbook 3.1.1 erfolgreich durchgeführt (geht u.a. auch mit dem Standard PHP Nuke bzw. CPortal Gästebuch): siehe hier unser TPK Gästebuch mit dem Spam Schutz - nix mehr mit Spam-Einträgen seit 9 Monaten.

Es müssen zwei Änderungen in der Datei "modules/Guestbook/index.php" vorgenommen werden:

1. Suche ca. Zeile 497:

Was zwischen <!--- AntiSpam ---> steht, hinzufügen:
      <td bgcolor="<?php echo "$bgcolor1"; ?>"><textarea name="comment" cols="41" rows="10"></textarea></td><td><?php echo $smilies; ?></td>    </tr>
      <!--- AntiSpam --->
      <?php
        $SProtectRandom = "";
        for ($i=0; $i<5; $i++) $SProtectRandom .= chr(mt_rand(48, 57));
      ?>      
      <input type="hidden" name="SProtectRandom" value="<?php echo $SProtectRandom; ?>">
      
      <tr bgcolor="<?php echo "$bgcolor1"; ?>">

        <td width="25%">Sicherheitsabfrage*: <span style="background-color: #000000"><?php echo $SProtectRandom; ?></span></td>
        <td colspan="2" bgcolor="<?php echo "$bgcolor1"; ?>">

          <input type="text" name="sprotect" size="5" value="" maxlength="5"> Wichtig: Geben Sie die Zahl neben der Sicherheitsabfrage hier ein.
        </td>
      </tr>
      <!--- AntiSpam --->
      <tr bgcolor="<?php echo "$bgcolor1"; ?>">

        <td width="25%">&nbsp;</td>
        <td colspan="2" bgcolor="<?php echo "$bgcolor1"; ?>">
          <input type="hidden" name="NB_folder" value="<?php echo $module_name; ?>">

          <input type="submit" name="mop" value="<?php echo _NBSUBMIT; ?>">
          <input type="submit" name="mop" value="<?php echo _NBPREVIEW; ?>">
          <input type="reset" name="Reset" value="<?php echo _NBRESET; ?>">

        </td>
      </tr>
    </table>
    </td></tr></table>
    </form>
<?php
    }
    powered();
    include("footer.php");
}


#==================================================
# function PreviewEntry

2. Um Zeile 987 findet sich nun folgendes:

Was zwischen //AntiSpam steht, hinzufügen:
function CheckEntry($mop,$module_name,$entry)
{
  include ("modules/$module_name/include/config.inc.php");
  global $nbname,$email,$url,$comment;
  global $dbhost,$dbuname,$dbpass,$dbname,$prefix;

  //AntiSpam V1.0
  $feld_sprotect=$_POST['sprotect'];
  $feld_SProtectRandom=$_POST['SProtectRandom'];
  if (!empty($SProtectRandom)) { die(); }  
  if ($feld_sprotect!=$feld_SProtectRandom) { gb_error('Die Zahlenreihe zur Sicherheitsabfrage ist falsch. Bitte kontrollieren.',$module_name,$entry); }
  //AntiSpam V1.0
  //AntiSpam V1.1
  $AntiSpamcomment = trim($comment);
  if (eregi('http://', $AntiSpamcomment)) { gb_error('URLs sind aus Spamgründen nicht im Kommentar erlaubt. Bitte die URL ändern. Statt http://www.blabla.com z.B. h t t p://www.blabla.com schreiben.',$module_name,$entry); }
  //AntiSpam V1.1
  $nbname = trim($nbname);
  $comment = trim($comment);
  if ($nbname == "")

Version 1.0: Nun können erst Beiträge gepostet werden, wenn der richtige "Sicherheitscode" eingegeben wurde.

Version 1.1: Die Änderungen wurden jetzt erweitert, da es einigen Spammern möglich war die Sicherheitsabfrage auszuhebeln. Nun ist es auch nicht mehr möglich URLs einzugeben (was diese A-Löcher so gerne tun).

Der zweite Teil (if (eregi('http://', $AntiSpamcomment))) kann einfach erweitert werden, indem man weitere Abfragen hinzufügt. z.B. ob Varibalen in dem Posting drin sind, usw. Statt der Zeile mit  'http://'noch eine Zeile mit der Abfrage aber z.B. <name> o.ä. hinzufügen. Die Spam-Einträge haben meistens ein bestimmtes Format...

Seitdem ist nun endgültig Schluss mit lustig. Wir haben seit 9 Monaten keinen Spameintrag mehr registriert.

Schreiben Sie mir, falls Sie Fragen zu dem Script haben sollten.

Falls Sie mit meinem Script Ihr Gästebuch erfolgreich gegen Spammer absichern konnten, würde ich mich über einen Gästebucheintrag freuen.

Raudi - Member and Founder of =SAaR= Clan

Letzte Änderung: 21.01.07 23:51:01