Guestbook Spam Problem

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/guestbook_spam_problem_154555/page_1 - zur Vollversion wechseln!


grOOvekill@ schrieb am 14.12.2005 um 17:28

S'gott,

folgendes: Ich habe für die Band eines Freundes eine Website gebastelt, die ein Guestbook enthält. Seit zwei Wochen erstellt irgendein Wahnsinniger ständig Einträge dieser Art:

Good job guys! Very nice site! side effects of zoloft: http://zoloft.fb.bz/ zoloft side effects; buy valium: http://valium-online.fb.bz/ valium online; buy lortab: http://lortab.fb.bz/ lortab online; buy didrex: http://didrex.fb.bz/ didrex; diazepam suicide: http://diazepam-online.fb.bz/ diazepam; viagra: http://cheap-viagra-online.fb.bz/ buy viagra; tamiflu: http://tamiflu.ca.tf/ buy tamiflu; buy cialis: http://cialis.ca.tf/ cialis online; levitra: http://levitra.ca.tf/ order levitra; ambien: http://ambien.ca.tf/ cheap ambien;

Ich brauch wohl nicht zu erwähnen, dass das ständige Löschen dieser bescheuerten Einträge langsam ein ziemliches Pain in the ass wird.

Nun habe ich mir überlegt, welche Methoden es geben könnte, wie man diesem Spinner das Handwerk legen könnte, ohne dabei auf das Guestbook zu verzichten.

- Die Namen, die er verwendet, sammeln und irgendwann beim Auslesen der Einträge aus der DB ausfiltern? Ist natürlich Essig, wenn er einfach immer andere Namen verwendet.

- Seine IP speichern und ihn dann irgendwie bannen? Aber wie? Geht natürlich auch nur dann, wenn er eine statische IP-Adresse hat.

Kurzum: Ich suche nach einem Weg, wie ich dieses Guestbook vor Mißbrauch schützen kann oder es solchen Idioten schwerer mache, diese Einträge zu verfassen, bis sie hoffentlich irgendwann mal aufgeben.

Irgendwelche brauchbaren Ideen?

tia


Spikx schrieb am 14.12.2005 um 17:33

Code-aus-Bild-Eingabe
Für den Anfang reicht wahrscheinlich auch eine direkte Anzeige des Codes :)
Nur geht das halt zu Lasten der normalen Besucher...


Phobos schrieb am 14.12.2005 um 17:35

ist es ein php guestbook?
für ein guestbook interessant wäre natürlich eine gültige email adresse eingeben zu müssen oder zb. einfach ein login einzubauen.
macht er immer die selben einträge? könntest natürlich gewisse wörter oder sätze sperren...
log einfach mal seine IP mit, kannst ja mal seinen provider herausfinden.


Tex schrieb am 14.12.2005 um 17:39

ich hab genau das gleiche problem. auch in einem guestbook einer befreundeten band. :) exakt die selbe art von einträgen. ich werd's wohl erstmal so lösen, dass ich einträge herausfiltere, die wörter wie "diazepam", "cialis", "viagra" enthalten. code-aus-bild-eingabe möchte ich eigentlich nicht machen.

edit: bei mir haben die einträge erst heute in der nacht angefangen. die aktuellen logfiles bekomme ich erst am ende des tages - vielleicht hat er ja immer die gleiche ip. dann wäre es kein problem.


daisho schrieb am 14.12.2005 um 17:55

Eventuell Beiträge mit URLs im Test gleich aussondern?
Ansonsten Word-Blacklist,
IP Filter ( ganzen Provider würde ich nicht bannen :confused: )
...

Diese Filter können natürlich auch andere Einträge löschen...


Tex schrieb am 14.12.2005 um 18:02

Zitat von daisho
Diese Filter können natürlich auch andere Einträge löschen...

ja, aber über diazepam, levitra und konsorten wird in einem band-guestbook eigentlich nicht disskutiert :)

man könnte es ja so machen: einträge, die wörter aus der black-list enthalten werden nur nach code-aus-bild-eingabe übernommen. so werd' ich das wohl am wochenende mal coden.

edit: die code-aus-bild-eingabe-teile heißen übrigens captcha. siehe: http://de.wikipedia.org/wiki/Captcha


grOOvekill@ schrieb am 15.12.2005 um 09:49

Zitat von Tex
ich werd's wohl erstmal so lösen, dass ich einträge herausfiltere, die wörter wie "diazepam", "cialis", "viagra" enthalten.

Ich gehe mal davon aus, dass die Filterung vor dem Insert in die DB stattfindet, oder? Wär ja schwachsinnig, den Datensatz anzulegen, nur um ihn bei der Ausgabe auszufiltern.

Richtig? Richtig? :D

edit: So, Problem gelöst! Hier mein Ansatz:

Code: PHP
$checkString = md5(microtime());
$pregWhat = array('/bösesWort/', '/bösesWort/');
$pregThat = array($checkString, $checkString);
$tempText = strtolower($text);
$tempText = preg_replace($pregWhat, $pregThat, $tempText);
$pos = strpos ($tempText, $checkString);
if ($pos === false) {
   $insert = "INSERT INTO gb ( gb_id,..) values( $id,.. );";
   }
   else {echo "Go and get fu**ed you piece a shi*!!";}	

Funktioniert auf jeden Fall bestens! :)


Phobos schrieb am 15.12.2005 um 13:49

vorallem die ausgabe wenn ein bad word drinnen ist find ich sehr ellegant ;)


grOOvekill@ schrieb am 15.12.2005 um 14:56

Zitat von Phobos
vorallem die ausgabe wenn ein bad word drinnen ist find ich sehr ellegant ;)

Naja, warum ausfallend werden, wenn man es auch so sachlich formulieren kann? :D


Tex schrieb am 15.12.2005 um 16:30

Zitat von grOOvekill@
Richtig? Richtig? :D

richtig! :D

ich hab's jetzt erstmal so gemacht, dass ich die eintragen.php in einen kryptischen namen umbenannt + eine robots.txt erstellt habe, die ein listing in den suchmaschinen verhindern soll. bis jetzt hatte ich keine weiteren spam-einträge.

ansonsten kommt bad-word-filter + captcha, falls jemand ein bad word eingeben möchte.


nr1 schrieb am 15.12.2005 um 16:45

ich würde nicht unbedingt probieren solche User auszusperren, sondern mal ein Mail an den Provider desjenigen schicken.

Logge die IP mit, dann geh auf http://www.ripe.net/perl/whois und lass dir auslesen woher der kommt. Dann schick eine Mail an den Provider, im normalfall sind die dort eh kooperativ und geben dir die eMail, bzw schicken dem Spaßvogel selbst was




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026