Auch wenn das Aufkommen an Gästebuchspam aktuell zurückgeht (im April nur noch 1/5 dessen, was zwischen November und März monatlich an Spameinträgen reinkam), wird es Zeit, dass ich mal wieder ein Update meines
Gästebuch-Spamfilters veröffentliche.
Eine reine Filterung auf "<a href=...>" und "[url]" reicht leider nicht mehr aus, aber es gibt ja noch mehr Möglichkeiten. Aktueller Stand:
preg_match_all("@http://@", $eintrag, $http_count_tmp);
preg_match_all("@%@", $www, $prozent_count_tmp);
if (
preg_match ( "/\[URL=.*\]|<a[^>]*href|^abc123$/i", trim($eintrag))
|| ( count($http_count_tmp[0]) > 3 )
|| ( $leerfeld != "" )
|| ( ( $name == $ort ) && ( $name != "" ) )
|| ( count($prozent_count_tmp[0]) > 10 )
) {
echo "Verp*** dich, Spammer!";
die;
}
Gefiltert wird also auf folgende Kriterien:
- der Eintrag enthält "<a href=...>" oder "[url]"
- lustigster Filter: der Eintrag lautet "abc123" - scheinbar lieben die Spammer solche Kurzeinträge ;-)
- im Eintrag kommt mehr als dreimal "http://" vor
- das Leerfeld (ein per CSS display:none ausgeblendetes Eingabefeld) wurde ausgefüllt
- die Homepage mehr als 10 %-Zeichen enthält (gern verwendet bei "Fremdhosting" von Spam, aka unsichere, gecrackte Forensoftware u. ä.)
- zwei Felder mit gleichem Eintrag
Die aktuelle Trefferquote liegt sehr nahe an 100%. Insbesondere das Leerfeld hat mir in letzter Zeit gute Dienste geleistet, weil viele Spammer nur noch einen kurzen Text (englisch, italienisch oder in kaputtem deutsch) ohne Links eintragen.
UPDATE 17.8.2007:
Filter auf >10 Prozentzeichen und auf Felder mit gleichem Eintrag hinzugefügt (ist schon seit einiger Zeit im Gästebuch-Spamfilter enthalten - seitdem ist wieder Ruhe.)
Kommentare