Folgende Warnungen sind aufgetreten:
Warning [2] Undefined array key 0 - Line: 1640 - File: showthread.php PHP 8.2.18 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/showthread.php 1640 errorHandler->error_callback
/showthread.php 915 buildtree




Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Spamangriff - LÖSUNG
#6
So! Ich habe ein bisschen rumgebastelt. Ist nur eine vorübergehende Lösung, aber immerhin. Ich habe in die "newentry.php" und in die "email.php" folgenden Code eingebaut:
Code:
        // search for content to identify spam
        $string = bbcode_delete($_POST['message']);
        $searchstring = "Hi there, very nice homepage :-)";
        $pos = strpos($string, $searchstring);

        if ($pos !== false)
            {
            // mail($settings['admin_email'], "Spam-Eintrag erfolgreich abgewehrt.", "Soeben wurde ein Spam-Eintrag von ".$_SERVER["REMOTE_ADDR"]." mit folgendem Inhalt abgewehrt:\n\n".$_POST['message'], $mail_header);
            die();
            }
        
        // following IP adresses will be blocked. Add desired IPs to the array.
        // NOTE: the last entry has to be without a comma at the end like here:
        //
        // $string = array(
        //        'xxx.xxx.xxx.xxx',
        //        'xxx.xxx.xxx.xxx',
        //        'xxx.xxx.xxx.xxx'  <-- see? no comma :)
        //        );

        // Array for blocked IPs
        $blocked_ips = array(
                '96.2.113.71',
                '91.12.220.244',
                '188.192.170.133',
                '91.12.220.244',
                '216.232.237.20',
                '91.12.204.61'
                );

            foreach ($blocked_ips as $ip)
                {
                if ($_SERVER["REMOTE_ADDR"] == $ip)
                    {
                    // mail($settings['admin_email'], "Spam-Eintrag erfolgreich abgewehrt.", "Soeben wurde ein Spam-Eintrag von ".$_SERVER["REMOTE_ADDR"]." mit folgendem Inhalt abgewehrt:\n\n".$_POST['message'], $mail_header);
                    echo "Are you a spammer? Not? Your IP was blocked. If that happened by mistake report it to the admin.";
                    die();
                    }
                }
Der erste Teil bewirkt, dass Einträge geblockt werden, die einen bestimmten Text enthalten. Der zweite Teil blockt einen Eintrag, wenn die IP des Benutzers mit einer der gespeicherten IPs in dem array "$blocked_ips" übereinstimmt. Die IPs die sich jetzt da drin befinden, habe ich aus den Spam-Einträgen im Gästebuch gesammelt. Das Array kann beliebig erweitert werden. Wichtig dabei ist nur, dass sich hinter dem letzten Eintrag kein Komma befindet. Wird in dem Kommentar auch nochmal gut erklärt.

Möchte man eine eMail erhalten, wenn ein Spam-Eintrag abgewehrt wurde, dann einfach bei
Code:
// mail($settings['admin_email'], "Spam-Eintrag erfolgreich abgewehrt.", "Soeben wurde ein Spam-Eintrag von ".$_SERVER["REMOTE_ADDR"]." mit folgendem Inhalt abgewehrt:\n\n".$_POST['message'], $mail_header);
die "//" entfernen.

Ich habe die beiden Dateien gepackt. Sie können hier herunter geladen werden. ACHTUNG: Diese Dateien sind aus der 0.6.4. Wenn der Code in eine ältere Version eingebaut werden soll, dann bitte manuell eintragen. Und zwar in der newentry.php NACH
Code:
$_POST['user_show_email'] = cleanstr($_POST['user_show_email']);
und in der "email.php" NACH
Code:
$_POST['user_sendcopytome'] = cleanstr($_POST['user_sendcopytome']);
Das müßte dann soweit funktionieren.

Download für 0.6.4: 7-zip | Zip | GZip | BZip2
Zitieren


Nachrichten in diesem Thema

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste