Spamproblem im PHP-Gästebuch

Sunnyfabi

Grünschnabel
Hallo Leute,

bin neu hier im Forum und hoffe auf Euere Hilfe. Leider hab ich auch nicht viel Ahnung von Php & Co!

Unser Gästebuch wird seit Tagen von irgend so ner Ringtone kacke zugemüllt, ich glaub die verwenden kein Script sondern tippen alles manuell ein.
Jetzt wollte ich einen Spamschutz einbauen, weiß aber nicht wie. Entweder nen Wortfilter wo man bestimmte Wörter sperren kann, oder zeitsperre beim posten oder irgendwas was hilft....

http://www.landjugend-puch.de/gaestebuch.php

Wär euch für jede Hilfe sehr dankbar, da die Einträge ganz schön nerven! (hab sie vorher grad erst gelöscht...)
 
Es gibt viele unterschiedliche Spam-Schutzmethoden. Um sich vor Spam-Bots zu schützen, können etwa Menschlichkeitsprüfungen wie etwa Captcha oder KittenAuth eingesetzt werden. Es könnte auch mit PHP-Sitzungen gearbeitet werden, wobei im Skript des Gästebuchformulars ein zufälliger Wert in der Sitzung gespeichert wird, der anschließend beim Eintragen wieder überprüft und direkt danach gelöscht wird.

Die allgemeine Aufgabe ist jedoch, ein gesundes Verhältnis zwischen der Sicherheit einer Schutzmethode und dessen Aufdringlichkeit zu finden.
 
hallo gumbo,

danke für deine Antwort.

Meinst du dass der Spammer manuell einträgt? Er hat ja auch schon 3 Seiten voll zugehauen, allerdings mit minutenweise unterschied...

ich glaub da bringt dann Captcha auch nicht wirklich viel, da er ja manuell einträgt und dann 4-6 Ziffern auch noch eintippt, des wäre nur ne möglichkeit ihn n bisschen zu ärgern.
 
wo finde ich denn ein script dass bestimmte wörter sperrt. d.h. wenn jetzt da z.b. airlines drin vorkommt dass der eintrag nicht gemacht werden kann

oder was wäre denn sinnvoll?
 
Hi Fabian,

ich hatte das gleiche Problem vor ein paar Wochen (manuell eingetragener Spam) und habe einen "Unwort"-Filter eingebaut. Seitdem ist Ruhe im Karton...
Dazu legst Du Dir eine ganz normale Text-Datei an, in der Du die "Unworte" untereinander einträgt, etwa so:::
Viagra
Blabla
Blabla
...

Die Abfrage ist relativ einfach:::
// Der Eintrag ins Gästebuch
$entry = "Viagra fast geschenkt! Bestellen Sie noch heute, bla bla bla...";
// Den Eintrag schreibe ich in eine neue Variable und entferne hier bestimmte Zeichen, da es ja auch so Spezialisten gibt, die z.B. V-I-A-G-R-A schreiben
$rawdata = $entry;
$rawdata = strtolower($rawdata);
$zeichen = array(' ', "_", "-");
for ($i=0; $i<count($zeichen); $i++ ) {
$rawdata = str_replace($zeichen[$i],"",$rawdata);
}
$unworte = "unworte.txt";
$array = file($unworte);
for($x=0;$x<count($array);$x++){
$array[$x] = chop($array[$x]);
$treffer = substr_count($rawdata, $array[$x]);
if($treffer>0) {
$c1 = "r";
echo "<script language=\"JavaScript\">\n";
echo "<!--\n";
echo "alert(\"Dein Beitrag enthält mindestens ein nicht erwünschtes Wort und kann deshalb leider nicht eingetragen werden!\");\n";
echo "window.location.replace('guestbook.html');";
echo "//-->\n";
echo "</script>";
exit();
}
}
Das war`s auch schon...
Natürlich kannst Du auch eine IP-Abfrage machen, doch da ein Router innerhalb kürzester Zeit neu gestartet ist und damit eine neue IP besitzt, bringt das bei aggressiven Spammern auch nicht viel...

So, hoffentlich hilft Dir das...
Ansonsten finde ich das, was Gumbo schreibt, durchaus auch für sinnvoll...

Einen schönen Tag noch wünscht

coral
 
Code:
anonymous 
4. Mai 2006, 11:15 Uhr 

foobar
Na, wenn der Beitrag nicht von einem aus diesem Thread kommt :D
 
Das wohl sicherste – aber leider auch aufwändigste – wäre, wenn du jeden neuen Eintrag selbst prüfst und zur Veröffentlichung freigibst.

Ach und Entschuldigung für den „foobar“-Eintrag, ich wollte eine mögliche Reload-Sperre prüfen, die auch anscheinend vorhanden ist.
 
recht herzlichen dank coral & gumbo,

aber irgendwas hab ich wohl falsch gemacht...

aber was :(

da muss ich auch meine gaestebuch.php eintragen, oder?
echo "window.location.replace('guestbook.html');";
 
Zurück