Anzeige:
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 19

Thema: Gästebuch Spamschutz ohne Bildergenerierung

  1. #1
    Registrierter Benutzer
    Registriert seit
    30.01.2005
    Beiträge
    19

    Gästebuch Spamschutz ohne Bildergenerierung

    Hi Leutz,
    seit geraumer Zeit wird ein von mir selbstprogrammiertes, auf PHP und MySQL basierendes Gästebuch, von Bots zugespamt, also mit XXX Cocks, Penisvergrößerung usw....
    Nun wollte ich fragen was es vielleicht noch für Möglichkeiten gibt, diesen SPAM automatisch rauszufiltern, ohne den typischen Weg, dass eine Zahlenkombination als Bild generiert wird, die der User dann eingeben muss, um seinen Eintrag zu verifizieren...Was ich nämlich für übertrieben halte bei einem Gästebuch....
    Weiß jmd ob es da Ansätze gibt, den Spamfilter wie ihn auch ein Mailprogramm verwendet, bei Gästebüchern anzuwenden??
    Thx schonma

  2. #2
    Registrierter Benutzer
    Registriert seit
    25.09.2001
    Beiträge
    101
    hm also das problem hatte ich vor paar tagen auch, hab zwar eine ip und zeitsperre drin, aber die sind so schlau und wechseln die ip oder gehen über nen proxy. Einen Bild-Code halte ich für das beste und die paar zahlen für nen Eintrag zu machen ist denke ich nicht der Rede wert.

    Einen Spamfilter zu verwenden könnte denke ich schon gehen, frage ist nur ob man sich so einen Aufwand machen will. Ich würde es per Code machen, ist einfacher.

  3. #3
    Registrierter Benutzer
    Registriert seit
    25.12.2004
    Beiträge
    217
    Hallo,

    als einfachen Schutz bietet sich an die "name"-Attribute der Input-Tags dynamisch zu generieren. Beispielsweise habt Ihr ein Eingabefeld "email", dann schreibt Ihr in PHP eine Funktion die den Namen durch einen zufälligen Schlüssel ersetzt und in das "name"-Attribut speichert.

    Um nach dem Abschicken noch zu wissen was der Schlüssel wirklich bedeutet, werden die Verknüpfungen (email => XYZ) in die Session gespeichert und beim Auswerten der Formulardaten wieder in die ursprüngliche Form zurückgewandelt.

    Werden keine gültigen Parameter an das Skript geschickt, findet kein Eintrag statt.

    Einen zusätzlichen Schutz kann man erreichen wenn man zusätzliche "Blind-Inputs" einfügt die in der Ansicht des Formulars ausgeblendet, aber beim Abschicken übertragen werden. Wird das Formular ausgewertet muss man prüfen ob alle Blind-Inputs in der richtigen Reihenfolge und leer oder mit einem zuvor eingegebenen Inhalt übereinstimmen. Somit ist für den Spammer nicht ersichtlich, in welche Felder welche Daten gehören.

    Das zwingt den Spammer dazu jedes mal das HTML auszuwerten oder den Request vor dem eigentlichen Verschicken abzufangen. Das macht es für die Spammer um einiges aufwändiger und der "normale" Besucher merkt nichts davon.

    Grüße,
    nEox
    Geändert von nEox (29-04-2006 um 13:56 Uhr)

  4. #4
    Registrierter Benutzer Avatar von Romanday
    Registriert seit
    03.02.2004
    Beiträge
    829
    Zitat Zitat von nEox
    Hallo,

    als einfachen Schutz bietet sich an die "name"-Attribute der Input-Tags dynamisch zu generieren. Beispielsweise habt Ihr ein Eingabefeld "email", dann schreibt Ihr in PHP eine Funktion die den Namen durch einen zufälligen Schlüssel ersetzt und in das "name"-Attribut speichert.

    Um nach dem Abschicken noch zu wissen was der Schlüssel wirklich bedeutet, werden die Verknüpfungen (email => XYZ) in die Session gespeichert und beim Auswerten der Formulardaten wieder in die ursprüngliche Form zurückgewandelt.

    Grüße,
    nEox
    Hast du ein Beispiel online?
    Würde gerne mal testen, ob ich nicht komplementär Schlüssel schreiben kann.
    Abriss, bzw. die Sprengung des World Trade Centers
    WDR Dokumentation
    Doku + DT Untertitel
    Weitere Infos - Terrorstorm

  5. #5
    Registrierter Benutzer
    Registriert seit
    25.12.2004
    Beiträge
    217
    Hallo Romanday,

    hier das Beispiel:

    http://neox44.ne.funpic.de/spamschutz/index.php

    Das ist nur die simple Methode, ohne die "Blind-Inputs".

    Möglichkeiten eines Spammers den "Schutz" zu umgehen wäre das HTML parsen (oder den Request vor dem eigentlichen Senden abzufangen) und die Inputfelder füllen (erst den Benutzernamen, dann das Passwort).

    Mit den "Blind-Inputs" könnte man den Schutz noch verstärken wenn man sie zufällig im Formular verteilt, die Reihenfolge eingehalten werden muss und bei diesen Feldern leere Inhalte übergeben werden müssen. Dann kann ein Spammer auch nicht "einfach alle Felder ausfüllen".

    Bin gespannt ob du beim Schlüssel schreiben Erfolg hast

    Grüße,
    nEox

  6. #6
    Registrierter Benutzer
    Registriert seit
    10.04.2002
    Beiträge
    54
    ich nehm immer http://sourceforge.net/projects/snoopy um sowas auszugleich (natuerlich nicht zum spamen, aber fuer ein anderes "problem")

    mfg jaf

  7. #7
    Registrierter Benutzer Avatar von Romanday
    Registriert seit
    03.02.2004
    Beiträge
    829
    Zitat Zitat von nEox
    Bin gespannt ob du beim Schlüssel schreiben Erfolg hast

    Grüße,
    nEox
    Ich dachte, das ist ein wenig komplizierter.
    Die Methode wird vielleicht irgendwelche Scriptkiddys und Spambots
    abhalten, aber sonst?. (Wie Du schon
    beschrieben hast.)
    Abriss, bzw. die Sprengung des World Trade Centers
    WDR Dokumentation
    Doku + DT Untertitel
    Weitere Infos - Terrorstorm

  8. #8
    Registrierter Benutzer
    Registriert seit
    25.12.2004
    Beiträge
    217
    Zitat Zitat von Romanday
    Die Methode wird vielleicht irgendwelche Scriptkiddys und Spambots
    abhalten, aber sonst?
    Dafür ist es ja gedacht

    @STEVMASTER
    Kannst du das so einsetzen? Also, ist der Ablauf klar?

    Grüße,

    nEox

  9. #9
    Registrierter Benutzer
    Registriert seit
    11.01.2006
    Beiträge
    103
    hatte mal ein ähnliches problem, zeitsperre brachte da recht wenig, da der spambot immer nur einen eintrag verfasst hat, jedoch habe ich festgestellt, dass es immer die gleiche ip war, somit habe ich diese einfach gesperrt und hatte auch keine weiteren probleme mit spam....

    PHP-Code:
    $ip==$_SERVER['REMOTE_ADDR'];
    if(
    $ip!="81.177.8.126")   //dies ist im übrigen die ip...
    {
        
    //hier einfach der inhalt deines php-scripts


    falls es bei dir nicht immer die gleiche ip ist, ändere mal die namen deiner post elemente, oder durchsuche den eintrag auf bestimmte begriffe bevor er zur DB hinzugefügt wird...

  10. #10
    Registrierter Benutzer
    Registriert seit
    30.01.2005
    Beiträge
    19
    Also ich werde erst mal überprüfen obs immer die selbe IP ist, was ich spontan nicht glaube...Außerdem halte ich das vielleicht nicht für die beste Lösung, weil sich auch der Spammer garantiert irgendwann mal innerhalb eines Monats mit ner neuen IP einwählen wird....Ein einfaches Durchsuchen der Begriffe ist nicht einfach...Ich will dem Besucher keine allzu restriktiven Beschränkungen bei seiner Wortwahl auferlegen, außerdem varrieren die Einträge (meistens ein und des selben Spammers) häufig.
    @nEox: Die dynamische Generierung der name-Property ist ne gute Idee, allerdings weiß ich nicht, wie Spammer vorgehen. Könnte mir gut vorstellen, dass die tatsächlich jedes Mal die Seite bei jedem Request neu auswerten (ist ja in sekundenbruchteilen erledigt mit einem entsprechenden Parser)...
    Naja, ich werd's erst mal mit allen Mitteln versuchen, bevor ich zu generierten Bildern greife...

  11. #11
    Registrierter Benutzer
    Registriert seit
    11.01.2006
    Beiträge
    103
    also bei mir hats geholfen...

    aber was mir da gerade noch eingefallen ist, du kannst ja überprüfen ob der client cockies annimmt, denn ich glaube das machen spammbots für gewöhnlich nicht..., oder du überprüfst ob der client von deinem formular kommt...

  12. #12
    Registrierter Benutzer Avatar von Romanday
    Registriert seit
    03.02.2004
    Beiträge
    829
    Die Spammer sind ja nicht alle doof.
    Im Grunde hilft nur eine Kombination verschiedener Lösungen.
    Ist ein ständiges geben und nehmen.
    Wenn man dies weiß, und sich daran nichts ändert, baut man
    am Anfang schon die passenden Kontrollen ein. Kommt einer
    durch wird halt nachgebessert.
    Abriss, bzw. die Sprengung des World Trade Centers
    WDR Dokumentation
    Doku + DT Untertitel
    Weitere Infos - Terrorstorm

  13. #13
    Jadawin
    Gast

    Vielleicht auch so ...

    Alle Gästebücher, die ich bisher programmiert habe, sind moderiert. Das heisst, das ein Eintrag nicht sofort und automatisch im Netz erscheint, sondern erstmal "auf Halde" gelegt wird und dann von einem Moderator freigeschaltet werden muss.

    Kommt jetzt ein Spammer, hat zwar der Moderator viel Arbeit, die Spams zu löschen, aber das Gästebuch wird für den Spammer auch uninteressant, weil ja seine Einträge nie an die Öffentlichkeit gelangen und er also sein eigentliches Ziel nicht erreicht.

    MfG
    Jadawin

  14. #14
    Registrierter Benutzer
    Registriert seit
    20.07.2003
    Beiträge
    147
    Du findest hier auch einige Ansätze: http://sagmueller.net/spa.pdf

    mfg
    c.

  15. #15
    Hoge
    Gast

    Html Tags verbieten

    Moin,
    hatte das gleiche Problem, und habe Tags im Script abgefangen
    durch Einbau von:

    /* Spamfunktion */
    /* Regex zur Ueberpruefung des Strings auf Tags*/
    if (preg_match("/(.*?)(<\w+[^>]+>)(.*?)/",$_POST['beitrag'])) {
    echo "Ungültiges Zeichen im Text. Es ist kein Html erlaubt";
    exit;
    }

    cu
    Hoge

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •