Seite 1 von 1

Codeschnipsel gegen Forumspammer

Verfasst: 21.02.2007, 17:46
von marc75
Weil hier heute mal wieder einige Spammer im Forum unterwegs sind, die Ihre Webseite an den Mann/Frau bringen wollen und jedes Unterforum zuspammen. Habe ich hier mal ein Codeschniepsel, womit verhindert wird das ein neuer User Urls posten kann. Ein User muss mindestens X (hier 10) Beiträge geschrieben haben bevor er eine Url posten kann.


Passend für phpbb Version weiß ich nicht. Kann man sicherlich anpassen.

Folgende Datei öffnen includes/functions_post.php
ab ca. Zeile 168 folgenden Code suchen

Code: Alles auswählen

 if ($mode == 'newtopic' || $mode == 'reply' || $mode == 'editpost') 
   { 
      // 
      // Flood control 
      // 
      $where_sql = ($userdata['user_id'] == ANONYMOUS) ? "poster_ip = '$user_ip'" : 'poster_id = ' . $userdata['user_id']; 
      $sql = "SELECT MAX(post_time) AS last_post_time 
         FROM " . POSTS_TABLE . " 
         WHERE $where_sql"; 
      if ($result = $db->sql_query($sql)) 
      { 
         if ($row = $db->sql_fetchrow($result)) 
         { 
            if &#40;intval&#40;$row&#91;'last_post_time'&#93;&#41; > 0 && &#40;$current_time - intval&#40;$row&#91;'last_post_time'&#93;&#41;&#41; < intval&#40;$board_config&#91;'flood_interval'&#93;&#41;&#41; 
            &#123; 
               message_die&#40;GENERAL_MESSAGE, $lang&#91;'Flood_Error'&#93;&#41;; 
            &#125; 
         &#125; 
      &#125;       
          
   &#125; 
den alten Code durch diesen hier ersetzen:

Code: Alles auswählen

  if &#40;$mode == 'newtopic' || $mode == 'reply' || $mode == 'editpost'&#41; 
   &#123; 
      // 
      // Flood control 
      // 
      $where_sql = &#40;$userdata&#91;'user_id'&#93; == ANONYMOUS&#41; ? "poster_ip = '$user_ip'" &#58; 'poster_id = ' . $userdata&#91;'user_id'&#93;; 
      $sql = "SELECT MAX&#40;post_time&#41; AS last_post_time 
         FROM " . POSTS_TABLE . " 
         WHERE $where_sql"; 
      if &#40;$result = $db->sql_query&#40;$sql&#41;&#41; 
      &#123; 
         if &#40;$row = $db->sql_fetchrow&#40;$result&#41;&#41; 
         &#123; 
            if &#40;intval&#40;$row&#91;'last_post_time'&#93;&#41; > 0 && &#40;$current_time - intval&#40;$row&#91;'last_post_time'&#93;&#41;&#41; < intval&#40;$board_config&#91;'flood_interval'&#93;&#41;&#41; 
            &#123; 
               message_die&#40;GENERAL_MESSAGE, $lang&#91;'Flood_Error'&#93;&#41;; 
            &#125; 
         &#125; 
      &#125; 
       
      // 
      // check Url spam 
      // 
      //Die 10 steht für die Anzahl Postings die ein User braucht bevor er eine URL posten kann.
      if&#40;$userdata&#91;'user_posts'&#93; < 10&#41; 
      &#123; 
         $lang&#91;'Alert_Spam'&#93; = 'Error&#58; Do Not Spam here!'; 
         if&#40;strstr&#40;$post_message, 'http'&#41; || strstr&#40;$post_message, 'www.'&#41;&#41; 
         &#123; 
            message_die&#40;GENERAL_MESSAGE, $lang&#91;'Alert_Spam'&#93;&#41;; 
         &#125; 
      &#125; 
          
   &#125; 
Datei speichern und hochladen, fertig.

Nachteil ist, wenn ein neuer User eine Frage zu seiner Domain hat und diese mit angibt, wird nix aus dem Posting. Sollte man den User vielleicht dann vor dem Schreiben darauf hinweisen. :D

Verfasst:
von

Verfasst: 21.02.2007, 19:20
von Nullpointer
die urls bringen hier eh nichts aber ads interessiert die spammer ja nicht. sie spammen ja trotzdem.

Verfasst: 21.02.2007, 19:30
von propaganda
Man kann nur froh sein, daß Abakus (noch) nicht in der Datenbank
des phpbb-Linkspam-Autosubmitters *x*r$umer* steht.

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Verfasst: 21.02.2007, 20:36
von [btk]tobi
Ob die Links hier was bringen oder nicht interessiert die Bots nicht, genau so wenig wie ob sie hier URLs posten können. Die senden einfach ihren Schrott an das Forum.
Ich hab bei mir in den Foren einfach die Namen der Formularfelder umbenannt, dann passen die Foren nichtmehr in das Muster der Bots und man Ruhe.

Verfasst: 21.02.2007, 21:05
von Schaum
Hi,
vielleicht solltet Ihr euch mal diese Seite ansehen:
https://www.bot-trap.de

Die ist zwar hier Forum schon bekannt aber ich teste das Skript gerade und bis jetzt kann ich nur sagen das es super läuft....

Verfasst: 22.02.2007, 09:04
von marc75
die urls bringen hier eh nichts aber ads interessiert die spammer ja nicht. sie spammen ja trotzdem.

Bei dem oben geposteten Code wird erst gar kein DB Eintrag gemacht, wenn eine URL im Posting vorhanden ist. Ist eher gegen die händisch eintragenen Spammer geeignet. Bots sollte man schon bei der Regristrierung abfangen.