pascal87 Geschrieben 10. März 2007 Teilen Geschrieben 10. März 2007 Hallo! Ich habe für meine private Homepage ein Gästebuch in php geschrieben und schon bevor die Seite fertig und verlinkt ist hatte ich es recht häufig mit Spambot-Einträgen á la "Viagra for free" zu tun. Nun habe ich mich erstmal für eine "Quick and Dirty" Löung des Problems entschieden (ich frage in einem Feld die Summe aus 2+2 ab, wenn diese nicht eingegeben wird, wird nichts übergeben -> kein Eintrag). Dies habe ich gemacht, weil ich php-Einsteiger und noch nicht in der Lage bin eine Zufallszahl zu generieren, aber ich arbeite dran... Was für Mittel und Wege nutzt Ihr um Einträge von Spambots in Gästebüchern/Kommentarfeldern zu reduzieren/verhindern? Habt Ihr irgendein Tipp/Link für mich, wo man genug Grundwissen sammeln kann Zufallswerte aus einer bestimmten Menge mit php zu generieren? Was haltet Ihr von dem Gästebuch aus technischer Sicht, was muss ich aus eurer Sicht unbedingt noch ändern, bevor ich es einsetzte? Link: Peter Soltau Gästebuch php Code: <?php // Dateiname in Variable speichern $datei = "comment.txt"; // Variable Kommentar gesetzt? Name und E-Mail nicht leer? if (isset($_POST['comment']) && $_POST['name'] != "" && $_POST['email'] != "" && $_POST['passwort'] == "4") { $comment = $_POST['comment']; $name = $_POST['name']; $email = $_POST['email']; $passwort = $_POST['passwort']; $comment = explode(" ", $comment); $l=count($comment); $counter=0; while($counter<=$l) { $comment[$counter] = wordwrap($comment[$counter], 106, "<br />", 1); $counter++; } $comment=implode(" ", $comment); // Datei wird zum Schreiben-Lesen geöffnet $zeiger = fopen($datei, "r+"); // alte Daten herauslesen und in $alt sichern $alt = fread($zeiger, filesize($datei)); // E-Mail-Link entsteht $email =$email; // Datum ermitteln und formatieren $datum = date("d.m.Y"); $zeit = date("H:i:s"); // HTML-Zeichen maskieren, Slashes entfernen, Zeilenumbrüche erhalten $comment = stripslashes(nl2br($comment)); // Meinung "zusammensetzen" $meinung="<p>$name [$email] schrieb am $datum um $zeit:<br>$comment\n</p>\n"; // Cursor zum Anfang rewind($zeiger); // neue Meinung vor alte in Datei schreiben: fwrite($zeiger, "$meinung \n $alt"); // Datei schließen fclose($zeiger); } // Datei anzeigen readfile($datei); ?> Ich freue mich über alles an konstruktiver Kritik / Verbesserungsvorschlägen ;-) Edit: $email =$email; ist so natürlich unsinn, liegt an einigen Experminten.. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
aLeXL Geschrieben 10. März 2007 Teilen Geschrieben 10. März 2007 das Zauberwort lautet "Captcha". Gibt einige Fertige, die kann man recht leicht in die eigene Homepage einbinden. Musst mal google bemühen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Mascha Geschrieben 11. März 2007 Teilen Geschrieben 11. März 2007 Mit diversen Captchas habe ich so meine Probleme (ich kann die Dinger selber manchmal nicht lesen), und sie schließen Fehlsichtige teilweise aus. Ich habe mit verschiedenen Dingen rumgespielt: Blacklist (Da stehen dann u.a. auch Formatierungs-Tags wie "" oder "a href" drin)Überprüfung der Felder (Syntax der Mailadresse, Vorhandensein von Zeilenumbrüchen,...)Timer (mehr als ein Eintrag pro X Sekunden)Überprüfung, ob das Formular vor POST mit GET von genau dieser IP geholt wurdeAls Spam einsortierte Eintragsversuche produzieren einen Fehler 403 "Access denied" und eine böse Rückmeldung an den Absender. Trotzdem landet jeder Eintrag in der Datenbank, allerdings mit Sperrvermerk. Punkt 4 erschlägt fast alle Spammer, gefolgt von Punkt 1. Punkt 3 ist bisher noch nie zum Tragen gekommen, die Spammer senden jede Anfrage von einer anderen IP. Punkt 4 könnte Probleme bereiten, falls der Besucher zwangsweise verschiedene Proxies nutzt, ich glaube, bei AOL ist das so. Aber in dem Fall kann ich den Beitrag noch manuell freischalten. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
pascal87 Geschrieben 11. März 2007 Autor Teilen Geschrieben 11. März 2007 Hallo! Erstmal vielen Dank für eure Meinungen/Vorschläge. @aLeXL: Habe ein Captcha eingebaut und es lief auch wunderbar, nur habe ich an dieser Stelle die gleichen bedenken wie Mascha hinsichtlich sehbehinderter Personen, außerdem mag ich die Teile selbst nicht, habe es also wieder rausgenommen. Habe jetzt erstmal wieder eine einfache Frage eingebaut "Wo steht das Brandenburger Tor", vieleicht, um nicht-deutschsprachige User nicht aususchließen auch eine einfache Rechenaufgabe (wäre ja auch als Captcha denkbar) und dann einfach mal schauen, wie es läuft, denke die derzeitigen Robots kommen damit nicht klar, zumindest bis jetzt nicht. ;-) Das Problem der Handspammer ist natürlich kaum lösbar, bloß habe ich damit kaum zu tun. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Mascha Geschrieben 11. März 2007 Teilen Geschrieben 11. März 2007 Hallo! Habe jetzt erstmal wieder eine einfache Frage eingebaut "Wo steht das Brandenburger Tor" Natürlich in Potsdam. Potsdam.de - Das Brandenburger Tor und Luisenplatz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
pascal87 Geschrieben 11. März 2007 Autor Teilen Geschrieben 11. März 2007 Natürlich in Potsdam. Potsdam.de - Das Brandenburger Tor und Luisenplatz ok, gibt sicher Fragen, die besser geeignet sind! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 12. März 2007 Teilen Geschrieben 12. März 2007 ok, gibt sicher Fragen, die besser geeignet sind! Ich denke darüber (Unterscheidung Mensch/Maschine) kannst du Doktorarbeiten schreiben Captchas sind ja nur ein Weg (und, wie oben auch angesprochen, kein unumstrittener). Fragen wie deine sind z.B. ein anderer. Das könntest du auch ausbauen und eine kleine DB anlegen mit ID, Frage und Antwort. Beim Anzeigen der Seite wird die ID hidden im Formular mitgegeben und am Ende prüfst du die Antwort. Fragen wie z.B. "Wie ist der Vorname von Franz Beckenbauer?", oder "Welcher Wochentag war Sonntag der 11. März 2007?" oder auch "Was ist 2 plus 2?" wären da angebracht. Noch sind Computer nicht intelligent genug um dafür eine Lösung zu finden. Wenn sich das ändert kannst du dir dann immernoch was anderes überlegen wie du sicherstellen kannst, ob da ein Mensch vorm Computer sitzt (oder du bist bis dahin Dr. rer. nat. der Informatik mit dem Thema ). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
azett Geschrieben 12. März 2007 Teilen Geschrieben 12. März 2007 Salut, ich finds als User sackig, noch eine Frage beantworten zu müssen oder ein Captcha zu entziffern. In meinem GB habe ich das so gelöst: Im Eingabeformular ist ein Input, das nicht angezeigt wird - der Benutzer sieht es nicht und kann dementsprechend nichts eintragen. Bei der Auswertung der Daten überprüfe ich das Textfeld - steht was drin, wars ein Bot. HTML: <form ...> ... <input type="text" name="yourtext" class="yourtext" value="" /> </form> CSS: input.yourtext { display:none; } PHP: if ($_POST['yourtext'] <> "") { header("Location:http://web.mit.edu/dmax/www/pics/****you.jpg"); die(); } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Mascha Geschrieben 12. März 2007 Teilen Geschrieben 12. März 2007 Salut, ich finds als User sackig, noch eine Frage beantworten zu müssen oder ein Captcha zu entziffern. In meinem GB habe ich das so gelöst: Im Eingabeformular ist ein Input, das nicht angezeigt wird - der Benutzer sieht es nicht und kann dementsprechend nichts eintragen. Bei der Auswertung der Daten überprüfe ich das Textfeld - steht was drin, wars ein Bot. Im Prinzip eine gute Idee, allerdings habe ich auch schon Besucher gehabt, die offensichtlich händisch einiges ausprobieren, bis sie durchkommen. Das schließe ich daraus, daß ich mal diverse Fehlversuche direkt nacheinander hatte, bis mein Schutzmechanismus "geknackt" war. Der Spammer konnte es dann nicht lassen, noch einen Eintrag abzusetzen mit dem Inhalt "I'm smiling." Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
azett Geschrieben 13. März 2007 Teilen Geschrieben 13. März 2007 Hrhrhr...nett Nuja, bei manuellem Spam hilft nur noch der Badword-Filter. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
azett Geschrieben 21. März 2007 Teilen Geschrieben 21. März 2007 Nachtrag zum Thema: Bei Microsoft (gelesen in der aktuellen c't) hatte man eine gute Idee, wie man zwischen Mensch und Maschine unterscheiden kann. Man zeigt einfach zwei Bilder an (im Beispiel einen Hund und eine Katze), und läßt den Anwender z.B. die Katze anklicken. Ein Bot weiß nicht, wie eine Katze aussieht Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Mascha Geschrieben 21. März 2007 Teilen Geschrieben 21. März 2007 Oder so etwas wie das hier: KittenAuth Test Page - ThePCSpy.com Aber das funktioniert (mal wieder) nicht mit einem textbasierten Browser. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
azett Geschrieben 21. März 2007 Teilen Geschrieben 21. März 2007 Sehr hübsch, das - und für Textbrowser zeigt man halt ASCII-Art Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 21. März 2007 Teilen Geschrieben 21. März 2007 Bei Microsoft (gelesen in der aktuellen c't) hatte man eine gute Idee, wie man zwischen Mensch und Maschine unterscheiden kann. ... Die unterscheidet sich aber IMHO überhaupt nicht (außer dass es ein Bild ist) von der Lösung mit einer Frage wie "Wie ist der Vorname von Franz Müller?". Für einen Menschen ist die Antwort ganz offensichtlich, für eine Maschine nicht. Wobei es ansich für eine Maschine durchaus möglich ist, eine Katze von einem Hund zu unterscheiden. Wenn es für Computer möglich ist, einzelne Menschen per Kamera auch in einer Menschenmenge zu verfolgen (auch wenn der Computer davor nur ein Bild des Menschen kannte), stellt die Unterscheidung Hund/Katze theoretisch nur eine Fingerübung dar. Ich weiß hingegen nicht, wie weit man beim Verständnis von menschlicher Sprache ist. Also ob ein Computer fähig ist eine solche einfache Frage zu verstehen (muss ja nicht immer diese eine sein, nach diesem Muster halt, dass die Antwort in der Frage schon mitgegeben wird). Ok, für Spambots sollte das schon unüberwindlich sein Aber zur Unterscheidung Mensch/Maschine ansich finde ich das keine gute Lösung, denn es würde eine einfache Mustererkennung und ein Vergleich mit einer hinterlegten Datenbank reichen, IMHO, für die Maschine. Und dazu ist ein Computer durchaus schon fähig. EDIT: Ist das nur Zufall gewesen, oder kommt das gesuchte Tier beim KittenAuth Test immer 4 mal vor (im Gegensatz zu den anderen Tieren)? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
azett Geschrieben 21. März 2007 Teilen Geschrieben 21. März 2007 Die unterscheidet sich aber IMHO überhaupt nicht (außer dass es ein Bild ist) von der Lösung mit einer Frage wie "Wie ist der Vorname von Franz Müller?". Stimmt. Aber gerade in Verbindung mit den Tierbabys erhöht es die Benutzermotivation enorm, finde ich. dazu ist ein Computer durchaus schon fähig. Jup, aber bis die Spammer entsprechend ausgestattet sind... Ist das nur Zufall gewesen, oder kommt das gesuchte Tier beim KittenAuth Test immer 4 mal vor (im Gegensatz zu den anderen Tieren)?Hatte eben nur drei Mini-Elefanten anzuklicken Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PieDie Geschrieben 21. März 2007 Teilen Geschrieben 21. März 2007 Bei mir funktioniert das im Firefox nicht. Nur IE geht. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
azett Geschrieben 21. März 2007 Teilen Geschrieben 21. März 2007 Möglicherweise JavaScript deaktiviert/geblockt? Hab keine Darstellungsprobleme mit FF2 auf der Seite. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Himmelweiss Geschrieben 23. März 2007 Teilen Geschrieben 23. März 2007 <input type="text" name="yourtext" class="yourtext" value="" /> [/php] du brauchst kein CSS um sowas zu verstecken. probiers mal mit... [php] <input type="hidden" name="yourtext" class="yourtext" value="" /> Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
azett Geschrieben 23. März 2007 Teilen Geschrieben 23. März 2007 Jau, aber der Spambot kann auf diese Weise sehr einfach überprüfen, ob er ver*rscht werden soll. Der Umweg übers CSS machts schwieriger. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Himmelweiss Geschrieben 23. März 2007 Teilen Geschrieben 23. März 2007 Jau, aber der Spambot kann auf diese Weise sehr einfach überprüfen, ob er ver*rscht werden soll. Der Umweg übers CSS machts schwieriger. hmm, da muss ich dir aufedenfall recht geben Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 23. März 2007 Teilen Geschrieben 23. März 2007 Jau, aber der Spambot kann auf diese Weise sehr einfach überprüfen, ob er ver*rscht werden soll. Der Umweg übers CSS machts schwieriger. Aber auch nur sehr geringfügig. Der Algorhitmus zum CSS-Klassen auf display: none o.ä. zu prüfen dürfte kaum ein Aufwand sein (für einen ernstzunehmenden Spambotprogrammierer wohl auch eher eine Herausforderung). Denke mit der Lösung bist du sicher, weil sich keiner drum kümmert, weil es so praktisch kaum gemacht wird. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.