Suche Gästebuch mit Captcha

Fabian Frank

Erfahrenes Mitglied
Hallo Leute,

naja, ich relaunche grad meine Homepage; leider fehlt mir jetzt ein Gästebuch.
Ich habe davor das Gästebuchbeispiel von Mathias Kannengießer verwendet, war auch sehr zufrieden, gutes Gästebuch. LEider wurden mit der Zeit immer mehr "Viagra-Spam" einträge aufgenommen usw...naja, es war dann allmählich so, dass die Site ne halbe minute zum Laden gebraucht hat, weil es so viele Spam einträge waren.

Ich habe auch schon bei Google und bei Tutorials.de gesucht, leider nichts gefunden.

Ausprobiert habe ich mittlerweile auch 5 Gästebücher, darunter auch Woltlab Burning Book.
Ansich nicht schlecht, jedoch sollte das Eintrag-Formular auf der Seite sein, auf der auch die anderen EInträge erscheinen...

Hoffe mir kann jemand helfen,

Danke,

Fabian Frank

EDIT: Achja, sollte wenn möglich ohne MySQL laufen...
 
Zuletzt bearbeitet:
Du könntest einen Wortfilter scripten! Hab ich selber noch nie gemacht, aber dürfte nicht allzu schwierig sein! Auf die schnelle würde mir folgendes einfallen:

PHP:
//Annahme, dass der Text beim Eintragen überprüft wird

$ignore_words=array("Viagra", "Test","Wort3")
$alert=0;
foreach($ignore_words as $chk_word){
    if(substr_count($_POST['entry'],$chk_word) = 0){
        //in die Datenbank eintragen
    }else{
        $alert=1;
    }
}
if($alert=1){
    echo "Der Eintrag wurde nicht gespeichert, da es als Spam identifiziert wurde
}

OK, so großartig ist das auch nicht, aber vielleicht ein Anfang...
 
Servus,

danke, an sich ist die Idee nicht schlecht.

Mir wäre jedoch ein vollständiges Gästebuchskript lieber, dass eine Captcha funktion beinhaltet und "ins gäsbebuch eintrag formular" auf der ersten Site ist.

Trotzdem danke für deine Anregung,

Fabi

EDIT: Ka*****, hab grad gelesen dass Captchas geknackt werden können...naja. Blöd...
Muss man sich wohl was überlegen, wie man spambots überlistet...
 
Zuletzt bearbeitet:
Vorne weg: Ein deinen Wünschen voll entsprechendes Script wirst du wohl nicht finden. Die meisten nicht-Datenbank-basierenden Systeme sind eher "minimalistisch" aufgebaut und verfügen von Natur aus nur über Grundfunktionen.
Wenn du Captcha (Dass es in Einzelfällen geknackt werden kann macht es nicht "unsicherer" :rolleyes: ) nicht magst, wäre eine Lösung à la "Lösen Sie folgende Aufgabe: 1 + 2" (via Zufall verschiedene Fragen) ganz okay. Im Grunde ist erstmal all das sicher, was kein primäres Ziel ist. Es ist viel leichter und effizienter, ein weit verbreitetes System auszukundschaften und seine Schwachstellen zu nutzen als wenn für jedes Angriffsziel erst eigene Schwachstellen gefiltert werden müsste. Wenn du also dein momentanes Script ein wenig modifizierst, bist du schon weit vorne dabei.

Vorgebacken bekommst du hier natürlich keine Lösung, aber mit den richtigen Fragen und den passenden Codezeilen deines momentanen Gästebuchscripts lässt sich sicherlich was Nettes basteln.

Am einfachsten wäre zB das Einfügen eines Zufallshashes beim Erzeugen des Eingabeformulars, den der Client dann per Copy and Paste in ein Eingabefeld kopieren soll. Ist nur ne schnelle Spinnerei, aber denk dran: Jede Modifizierung macht es individueller und somit weniger interessant für Angreifer.

PHP:
<input type="hidden" name="check" value="<?php
$checkstring = substr(md5(microtime()), 0, 5);
echo $checkstring;
?>" />
Bitte bestätigen ("<?php
echo $checkstring;
?>" einfügen)! <input type="text" name="verify" value="" />

<?php
// ...

if ($_POST['verify'] == $_POST['check']) {
    // valide
}

Für Captcha oder ähnliches wird eine Datenbanklösung gebraucht oder über Sessions gearbeitet (oder beides in Kombination) - Das finde ich aber etwas zu wuchtig für deine Ansprüche.

Der Vorschlag "Wortfilter" ist ebenfalls ne Überlegung wert. Über einen Regex würd ich eine Liste von Wörtern oder Wortgruppen aus dem String filtern, und wenn die Anzahl an Treffern größer als zB 3 ist, wird gefiltert.
 
Hi,

vielen Dank für deine Antwort.

Das mit dem Hash ist eine sehr gute Idee.

Ich werd 2 Sachen kombinieren, einmal die eingabe eines Hashes und 2. ein leeres Feld, dass per CSS unsichtbar gemacht wurde und leer bleiben muss.

Hab gelesen, dass Spambots alle Felder aus dem Grund ausfüllen, da es ein Sternchenfeld sein könnte...

Fahr jetzt Weg, am Sonntag werd ich das Ganze mal versuchen umzusetzen.
Wenns Probleme gibt melde ich mich,

Vorerst - Erledigt -

Nochmals danke ;)
 
Zurück