Netzflut

Webdesign, Webentwicklung, Drupal & Zeuchs

Anti Spam Module

Inhaltsverzeichniss

    Notizen nach einem massiven Spam Angriff auf eine Seite.

    Captcha Module

    Info so gut wie jedes normale Capacha ist ohne weiteres knackbar, siehe das Tool "XRUMER".
    X: Schwach oder bei erprobung versagt
    M: Kostet Geld
    ?: Fragliche Usability

    X http://drupal.org/project/captcha Standard CAPCHA basis Modul. Fast immer Required. Easy knackbar.
    M http://drupal.org/project/mollom Kostet ab einer gewissen Anzahl. Analyse des Textes auf Spam integriert. Sehr gut.
    ? http://drupal.org/project/egglue_captcha Sätze müssen vervollständigt werden.
    X http://drupal.org/project/recaptcha Weltbekanntes reCaptcha. Auch das wurde schon in der Praxis geknackt.
    X http://drupal.org/project/captcha_pack Pack mit diversen Methoden wie Mathe oder Ascii Captchas
    http://drupal.org/project/riddler Fragen wie: Welche Farbe hat Graß, grün,rot,blau.
    http://drupal.org/project/spam
    M http://drupal.org/project/akismet Askimet kostet.
    http://drupal.org/project/antispam
    http://drupal.org/project/badbehavior
    ERROR http://drupal.org/project/spamicide BEIM LETZTEN TEST mit D6 NICHT FUNKTIONSFÄHIG
    http://drupal.org/project/secure_motion_captcha

    Honeypots/No image captchas

    Was ist ein Honeypot? Das abwehren von Bots ohne nervige Captchas die den Benutzer nerven.

    http://drupal.org/project/js_validate_forms
    http://drupal.org/project/honeypot
    http://drupal.org/project/captcha-free
    http://drupal.org/project/hidden_captcha
    http://drupal.org/project/blockanonymouslinks
    http://drupal.org/project/hashcash
    http://drupal.org/project/blogspam
    http://drupal.org/project/spambot
    http://drupal.org/project/trick_question

    Anti Email Phishing

    http://drupal.org/project/invisimail
    http://drupal.org/project/spamspan

    Sonstige

    http://drupal.org/project/spambot
    http://drupal.org/project/misery
    http://drupal.org/project/wordfilter
    http://drupal.org/project/phonetic

    IP Blocking

    http://drupal.org/project/httpbl
    http://drupal.org/project/troll
    http://drupal.org/project/goaway

    Nachfolgende Texte sind reine Brainstorm Ideen.

    Schutz-Ideen für ein Modul, Brainstorming

    http://www.1ngo.de/web/captcha-spam.html (ausführlicher Ansatz mit verstecktem Input Feld und Zeitkontrolle)
    http://www.aboone.com/javascript-iphone-lock-slider-with-jquery (Drag & Drop Lösungsansatz)
    http://www.google.de/url?sa=t&rct=j&q=drag-and-drop-captcha-a-better-approach-to-captcha.pdf&source=web&cd=1&ved=0CCsQFjAA&url=http%3A%2F%2Fcmp.felk.cvut.cz%2F~cernyad2%2FTextCaptchaPdf%2FDrag%2520and...
    http://www.webdesignbeach.com/beachbar/ajax-fancy-captcha-jquery-plugin (Drag & Drop Lösung mir JQuery Plugin)
    http://myphpsnip.com/?snip=trashmails (Emails auf Trashmail prüfen)
    http://www.antispam.de/?topic=encoder (mailto: Emails verschlüsseln)

    ToDo:

    • Blockliste für disposable Mail Dienste
    • Auf Zeit prüfen die der user zum Ausfüllen bzw absenden braucht
    • Die Anmeldung mit der disposable mail/Eintrag annehmen, um dem bot vorzutäuschen das der angriff erfolgreich war, ABER das ganze dann danach löschen? Sinnlos, da der bot merkt das er nicht posten kann.
    • IP bannen bei mehreren Fehleingaben durch unten aufgeführten algo. Unter umständen blockiert man so ein Netzwerk z.b Uni/Schule, egal dann warnung mit Hinweis.
    • Formularseiten können NICHT direkt aufgerufen werden, letzter Seitenaufruf muss von der domain selbst kommen. z.B www.domain,de/news, beim bot müsste das leer sein.

    Usernamen checker

    Keine Usernamen wie asdft oder schwachsinnige nahmen 1affor5
    Emailadressen auch auf logik prüfen?

    Hidden Field/Random/Textfrage

    Bei jedem Aufruf einer Seite mit Formular, per random Felder erzeugen welche ausgefüllt/nicht ausgefüllt sind.

    Bsp.

    1 Name (visible)
    2 E-Mail (visible)
    3 Müll (hidden)
    4 Müll1 (hidden)
    5 Frage (Visible)
    6 Müll3 (hidden)

    Felder werden auch jedesmal anders angeordnet. D.h das ändert sich jedes mal die Position der Frage und der Müllfelder und man kann sich nicht drauf einstellen. Die Müll Felder müssen hidden sein. Alle Felder namen/ids werden per Zufall mit hash algo+timestampsalt generiert. DasModul Honeypot macht das schon in etwa, aber nur mit einem hidden Field.
    Je ein Feld was immer an unterschiedlichen Stellen erscheint (im Formcode) ist sichtbar und es muss etwas eingegeben werden (1-2 Felder), das Feld kann auch einen namen/id haben die vorher einem hidden feld zugewiesen worden ist.
    Die Frage wird als Captchatext dargestellt. Frage geben sie ABC ein als Bild ausgeben mit unterschiedl. Kompressionen, Dateiformaten. Diverse Formate/typen/Fragen/Mathe
    Problem: Name, und Mail müssen als Feldbezeichnung ja in den Quelltext.

    Label mehrfach nutzen z.B 4 mal Label Name.

    1.)Session variable / GET request detection

    Einen String in die Session legen, wenn ein GET Request gemacht wird und wenn das Formular abgesendet wird, die Session auf die Variable Prüfen. Das kann dumme Bots filtern, die den Request direkt mit POST senden. Wenn der Botsich wie ein Webbrowser verhält, bringt das nichts.

    2.)Falsche Form elemente

    Versteckte Formelemente, die ein Bot ausfüllen würde, ein Mensch aber nicht. Wenn der Bot das Feld ausfüllt wird er blockiert. Honeypot macht das.
    http://www.website-spy.de/32/captcha-alternativen/
    Von welcher Seite kommt der User ? [muss nicht umbedingt aus http_referer ausgelesen werden]?
    Wie lange hat sich der User auf der Seite aufgehalten bevor er das Formular aufgerufen hat ?
    math aufgabe in ganz kleiner schrift. wird nicht abgefragt, verwirrt aber den bot. weisse schrift auf weis?
    Maildarstellung sowie hier: http://www.antispam.de/?topic=encoder

    invisible cptcha technique

    http://docs.jquery.com/Tutorials:Safer_Contact_Forms_Without_CAPTCHAs
    http://ploum.frimouvy.org/?150-the-invisible-captcha-mechanism-icm-against-form-spam

    Methoden um es Spam Bots zu erschwerden

    Eine Javascript Funktion voraussetzen (js muss also an sein). Javascript fähige Bots zu bauen ist anstrengender. Wenn kein JS an ist, captcha zeigen.
    Tastaturanschlähe zählen per JS. Wenn unmenschlich dann ist es ein Bot.
    Alle Field IDs/Markup täglich ändern, classen wechseln.
    Felder täglich neu anordnen und zwar die hidden Fields oder die normalen Felder. Bei den normalen Feldern darf dies den User nicht stören.
    Flash Captchas?
    Time-Block wenn ein useragent viele Requests pro Minute abschickt. Wenn jemand alle 5 Sekunden einen Request an /login abschickt, ist es definitiv ein Bot.

    http://drupal.org/node/649594
    http://d6-captcha.drupal-demos.org/node/add/css-captcha

    Was wenn er bot einen screenshot der seite macht?

    Weitere Artikel

    http://www.leveltendesign.com/blog/colin/spam-be-gone-10-spam-blocking-drupal-modules