Venske: Allheilmittel gegen Spambots?

Hi,
habe vorhin folgendes gelesen:

Damit menschliche Benutzer hier nichts eintragen, wird das Feld per CSS versteckt. Aber Achtung! Das Feld nicht als type="hidden” auszeichnen, und NICHT mit display:none oder visibility:hidden verstecken. So dumm sind die Bots dann doch nicht.
Richtig ist vielmehr, das Feld per CSS aus dem viewport zu verschieben.

Frage:
Ist dies wirklich ein Heilmittel?
Wenn der Bot CSS liest (um wie der Author schreibt, display:none o.ä zu erkennen), so wird er doch auch erkennen, dass das Feld seltsame Positionsangaben enthält und wird dieses Feld wie ein hidden-Feld behandeln.

  1. Moin!

    Damit menschliche Benutzer hier nichts eintragen, wird das Feld per CSS versteckt. Aber Achtung! Das Feld nicht als type="hidden” auszeichnen, und NICHT mit display:none oder visibility:hidden verstecken. So dumm sind die Bots dann doch nicht.
    Richtig ist vielmehr, das Feld per CSS aus dem viewport zu verschieben.

    Frage:
    Ist dies wirklich ein Heilmittel?

    Es hilft, aber es ist kein Allheilmittel.

    Wenn der Bot CSS liest (um wie der Author schreibt, display:none o.ä zu erkennen), so wird er doch auch erkennen, dass das Feld seltsame Positionsangaben enthält und wird dieses Feld wie ein hidden-Feld behandeln.

    Ein Bot liest das HTML, sucht Formularfelder, und kann die Fundstellen auf typische Anzeichen für Spamfallen prüfen. Wenn direkt im Formularfeld type="text" und style="display:none" steht, kann er sich denken, dass das eine Falle ist.

    Wenn das Formularfeld aber nur "nackt" im HTML steht, und durch abstrusere CSS-Kombinationen, also z.B. externe CSS-Dateien mit komplexeren Selektoren, ausgeblendet oder verschoben wird, bedeutet das einen recht hohen Erkennungsaufwand, den ein Botprogrammierer nicht unbedingt treiben wird. Er wird wohl eher den einfacheren Weg gehen, und lieber ein paar unterschiedliche Requests probieren, die nicht alle Felder auf gleiche Weise verändern. Mit Glück kommt ein Request durch.

    Deshalb: Nicht angezeigte Formularfelder sind keine Garantie gegen Spambots, sie helfen nur, die Erkennungsrate angenehm hoch zu setzen.

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
  2. Hallo zusammen,

    Hi,
    habe vorhin folgendes gelesen:

    Damit menschliche Benutzer hier nichts eintragen, wird das Feld per CSS versteckt. Aber Achtung! Das Feld nicht als type="hidden” auszeichnen, und NICHT mit display:none oder visibility:hidden verstecken. So dumm sind die Bots dann doch nicht.
    Richtig ist vielmehr, das Feld per CSS aus dem viewport zu verschieben.

    So macht man es auch für Anweisungen, die zum Beispiel nur Blinde "sehen" sollen, die Ihnen also vorgelesen werden - die würden dann auch drauf reinfallen und kein Blinder wäre mehr in der Lage Dein Formular zu nutzen - ziemlich fies, wenn Du mich fragst...

    Zumal der Blinde wohl niemals erfahren wird, dass das von ihm abgeschickte Formular nirgends ankommt und es nach einer Weile noch mal probiert...

    Viele Grüße,
    Marc.

    --
    Und immer schön
    validieren (http://validator.w3.org/)
    1. Shalom!

      Damit menschliche Benutzer hier nichts eintragen, wird das Feld per CSS versteckt. Aber Achtung! Das Feld nicht als type="hidden” auszeichnen, und NICHT mit display:none oder visibility:hidden verstecken. So dumm sind die Bots dann doch nicht.
      Richtig ist vielmehr, das Feld per CSS aus dem viewport zu verschieben.

      Ich verwende ein solches Feld in meinem Kontaktformular, und bisher sind alle Bots darauf reingefallen. Dabei verstecke ich es sogar mit display:none - allerdings nicht als Inline-Style, sondern mithilfe einer ID im externen CSS.
      Wie Sven schon geschrieben hat, ist das natürlich kein 100%iger Schutz. Je mehr Leute das verwenden, desto mehr wird es sich auch für die Spammer lohnen, klügere Bots zu schicken. Aber im Moment klappt's noch sehr gut. :-)

      Das einzige Problem dabei ist, daß die menschlichen Spammer nicht darauf hereinfallen, die ihren Mist von Hand eingeben.

      So macht man es auch für Anweisungen, die zum Beispiel nur Blinde "sehen" sollen, die Ihnen also vorgelesen werden - die würden dann auch drauf reinfallen und kein Blinder wäre mehr in der Lage Dein Formular zu nutzen - ziemlich fies, wenn Du mich fragst...

      Deswegen schreibt man noch ein passendes Label dazu, sinngemäß: "Hier bitte nichts eintragen, sonst wird Ihre Nachricht als Spam eingestuft!" Das Label wird dann auch per CSS versteckt.

      Zumal der Blinde wohl niemals erfahren wird, dass das von ihm abgeschickte Formular nirgends ankommt und es nach einer Weile noch mal probiert...

      Warum nicht? Nach dem Abschicken sollte der Benutzer auf jeden Fall noch einmal Feedback bekommen, finde ich. Entweder sinngemäß "Ihre Nachricht wurde erfolgreich versendet. Vielen Dank!" oder eine Erklärung, was schiefgegangen ist (Technische Probleme / Pflichtfelder fehlen / Spam-Verdacht / ...).

      Viele Grüße vom Længlich

      1. Hello,

        Deswegen schreibt man noch ein passendes Label dazu, sinngemäß: "Hier bitte nichts eintragen, sonst wird Ihre Nachricht als Spam eingestuft!" Das Label wird dann auch per CSS versteckt.

        Das sollte man für manche "Sehenden" aber auch ruhig tun *gfg*

        Harzliche Grüße vom Berg
        http://bergpost.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

  3. Moin!

    Wenn der Bot CSS liest (um wie der Author schreibt, display:none o.ä zu erkennen), so wird er doch auch erkennen, dass das Feld seltsame Positionsangaben enthält und wird dieses Feld wie ein hidden-Feld behandeln.

    Ich habe vor etwas längerer Zeit irgendwo gelesen, dass genau das eines der Probleme solcher Spielchen ist: Mit WebKit und Gecko stehen zwei fortgeschrittene Renderer für Webseiten frei und offen zur Verfügung, d.h. ein Spammer könnte seinen Bot damit ausstatten und schauen, welche Formularfelder überhaupt im Viewport liegen.

    Aber mal ein anderer Ansatz: Gibt es Gründe, die gegen kleine Rechenaufgaben oder triviale Sicherheitsfragen sprechen?

    Viele Grüße,
    Robert

    1. Hi.

      Aber mal ein anderer Ansatz: Gibt es Gründe, die gegen kleine Rechenaufgaben oder triviale Sicherheitsfragen sprechen?

      Obwohl mir Bedeutung und Sinn solcher „Aufgaben“ bekannt sind, bin ich immer etwas beleidigt, wenn sie mir vorgesetzt werden. Will der Webmaster seinen „Kasten“ sauber halten, soll er das bitte im Hintergrund tun, aber nicht mich mit solchem Kinderkram belästigen. ;-)

      vg Bud

      1. Aber mal ein anderer Ansatz: Gibt es Gründe, die gegen kleine Rechenaufgaben oder triviale Sicherheitsfragen sprechen?

        Obwohl mir Bedeutung und Sinn solcher „Aufgaben“ bekannt sind, bin ich immer etwas beleidigt, wenn sie mir vorgesetzt werden. Will der Webmaster seinen „Kasten“ sauber halten, soll er das bitte im Hintergrund tun, aber nicht mich mit solchem Kinderkram belästigen. ;-)

        ich nehme mal an Du meinst mit Kinderkram die 'kleinen' Rechenaufgaben und die 'trivialen' Sicherheitsfragen.

        Ich stimme Dir zu und denke komplizierte Aufgaben sind die beste Lösung.

        Adolf

        1. Hi,

          Ich stimme Dir zu und denke komplizierte Aufgaben sind die beste Lösung.

          Nein. Captchas haben doch schon lange 'ausgecaptchat'. Spambotbetreiber benutzen doch schon lange fremde Captchas auf eigenen Seiten um die von Menschen geloesten 'Aufgaben' durchzugeben. Das funktioniert wie Phihingseiten. Du moechtest dich in irgendeinem Forum beteiligen, einen cheat fuer n Computerspiel finden, ... Du sollst ein captcha loesen, das eigentlich von einer anderen Seite stammt und wenn du fuer den Bot erfolgreich genuegend Captchas geknackt hast, darfste weiter...

          Komplizierte Aufgaben sind noch alberner, haben genausowenig Erfolg und fordern den User geradezu auf, die Seite zu verlassen.

          Es gibt keine 100% Loesung gegen Spambots. Falls doch, waere schon lange jemand damit stinkreich geworden, oder nicht? Das einzige was funktioniert ist etwas unbenutzbar zu machen. Aber da hat man schon vorher alle User verloren oder Aerger mit irgendwelchen Gerichten, weil man sich nicht an Bestimmungen haelt (bei Kontaktmoeglichkeiten z.B.).

          1. Komplizierte Aufgaben sind noch alberner, haben genausowenig Erfolg und fordern den User geradezu auf, die Seite zu verlassen.

            Es gibt solche und solche aber meistens solche.

            Adolf

        2. Grütze .. äh ... Grüße!

          ich nehme mal an Du meinst mit Kinderkram die 'kleinen' Rechenaufgaben und die 'trivialen' Sicherheitsfragen.

          Ich stimme Dir zu und denke komplizierte Aufgaben sind die beste Lösung.

          Ach wo, die Abfrage darf ruhig simpel sein:

          -13 = 5a + c
          0 = 14 - 2b
          6 = -2c - 5a

          Sobald man die richtigen Werte für a,b,c eingetragen hat, kann man senden ...


          Kai

          --
          What is the difference between Scientology and Microsoft? One is an
          evil cult bent on world domination and the other was begun by L. Ron
          Hubbard.
          ie:{ fl:( br:< va:) ls:? fo:| rl:? n4:° ss:{ de:] js:| ch:? mo:| zu:|
          1. Hi,

            Ach wo, die Abfrage darf ruhig simpel sein:

            -13 = 5a + c
            0 = 14 - 2b
            6 = -2c - 5a

            Sobald man die richtigen Werte für a,b,c eingetragen hat, kann man senden ...

            schönes Beispiel.
            Jeder der in der Schule aufgepasst hat kann diese Aufgabe lösen.

            Diesem Board würde das auch gut tun.

            Adolf

            1. Moin!

              Ach wo, die Abfrage darf ruhig simpel sein:

              -13 = 5a + c
              0 = 14 - 2b
              6 = -2c - 5a

              Sobald man die richtigen Werte für a,b,c eingetragen hat, kann man senden ...

              schönes Beispiel.

              Dummerweise ist das Beispiel allerdings meiner Erfahrung nach nicht Otto-Normal-kompatibel:

              Jeder der in der Schule aufgepasst hat kann diese Aufgabe lösen.

              Es is unglaublich, wie viele das offensichtlich nicht tun – und wie viele davon sogar studieren. Tja, wenn dann irgendwann vielleicht die Spambots in die Schule gehen … hm, das wäre vielleicht gar nicht so schlecht, dann wären die „zu schlau“ ;-)

              Viele Grüße,
              Robert

              1. Hi,

                Es is unglaublich, wie viele das offensichtlich nicht tun – und wie viele davon sogar studieren.

                nun ja ich vermute mal die studieren dann BWL, Psychologie,
                Philosophie oder dergleichen.

                Tja, wenn dann irgendwann vielleicht die Spambots in die Schule gehen … hm, das wäre vielleicht gar nicht so schlecht, dann wären die „zu schlau“ ;-)

                tja diese Spambots ...
                aber kurz nach schlau kommt ja schon gottähnlich.

                Adolf

          2. Hello,

            Ach wo, die Abfrage darf ruhig simpel sein:

            -13 = 5a + c
            0 = 14 - 2b
            6 = -2c - 5a

            Sobald man die richtigen Werte für a,b,c eingetragen hat, kann man senden ...

            Ich dachte immer, das Auslösen des Requests habe mit seinem Inhalt gar nichts zu tun?

            Auf meinem Browsser kann ich immer "senden" *fg*

            Harzliche Grüße vom Berg
            http://bergpost.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
            Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

  4. Hello,

    Damit menschliche Benutzer hier nichts eintragen, wird das Feld per CSS versteckt. Aber Achtung! Das Feld nicht als type="hidden” auszeichnen, und NICHT mit display:none oder visibility:hidden verstecken. So dumm sind die Bots dann doch nicht.

    Ich lege immer mittels postion:absolute ein Bild darüber.
    Dann kann der Normalsurfer nichts eingaben in das Dialogelement

    Harzliche Grüße vom Berg
    http://bergpost.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

    1. Moin!

      Ich lege immer mittels postion:absolute ein Bild darüber.
      Dann kann der Normalsurfer nichts eingaben in das Dialogelement

      Es soll ja Menschen geben, die sich keine Bilder anzeigen lassen, einen Textbrowser verwenden oder nicht sehen können. Wie hilfst du denen auf die Sprünge?

      Viele Grüße,
      Robert

      1. Hello,

        Ich lege immer mittels postion:absolute ein Bild darüber.
        Dann kann der Normalsurfer nichts eingaben in das Dialogelement

        Es soll ja Menschen geben, die sich keine Bilder anzeigen lassen, einen Textbrowser verwenden oder nicht sehen können. Wie hilfst du denen auf die Sprünge?

        Es soll auch Menschen geben, die keine Browse trinken und auch diese Komutas ablehnen.
        Denen sit auch nicht zu helfen...

        Das soll nicht heißen, dass ich Eure Bemühungen, an Alles zu denken, geringschätzen würde. Aber ich denke, dass das gar nicht geht.

        Harzliche Grüße vom Berg
        http://bergpost.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

        1. Moin!

          Das soll nicht heißen, dass ich Eure Bemühungen, an Alles zu denken, geringschätzen würde. Aber ich denke, dass das gar nicht geht.

          Kein netter Hinweistext, der Blinde davor bewahrt, als Spammer aussortiert zu werden?

          Schönes Wochenende,
          Robert

          1. Hello,

            Das soll nicht heißen, dass ich Eure Bemühungen, an Alles zu denken, geringschätzen würde. Aber ich denke, dass das gar nicht geht.

            Kein netter Hinweistext, der Blinde davor bewahrt, als Spammer aussortiert zu werden?

            Man sollte, soweit es geht, immer an seine Mitmenschen denken.
            Manchmal muss man sogar mehr versuchen, als eigentlich "geht".

            Aber die Herren und die Dame, die die HTML-Standards gebaut haben, haben überhaupt nicht an die 10% Menschen mit erheblicher krimineller Energie gedacht. Das heißt, da haben Leute zusammengesessen, denen ich Einiges an Intelligenz unterstellen will, die aber trotzdem nicht in der Lage waren, auch die Missbrauchsmöglichkeiten zu durchdenken?

            Und nun einfach alles den Anwendungsprogrammierern zu überlassen ist auch nicht fair.

            Das Problem liegt ja darin, dass ein BOT eigentlich auch blind ist. Wenn er sich nun die Seite "vorlesen" lässt, ist er sofort im Bilde.

            Harzliche Grüße vom Berg
            http://bergpost.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
            Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

  5. Hi,

    Damit menschliche Benutzer hier nichts eintragen, wird das Feld per CSS versteckt. Aber Achtung! Das Feld nicht als type="hidden” auszeichnen, und NICHT mit display:none oder visibility:hidden verstecken. So dumm sind die Bots dann doch nicht.
    Richtig ist vielmehr, das Feld per CSS aus dem viewport zu verschieben.

    Frage:
    Ist dies wirklich ein Heilmittel?

    zunächst: der Autor hat keine Ahnung! Natürlich sollte man eine solche Falle (samt label) per display:none auch vor Screenreadern auszublenden versuchen - und für den Fall, dass das nicht klappt, einen entsprechenden Hinweis im label angeben. Das natürlich im ausgelagertem CSS, was ein Spam-Bot sowieso nicht beachtet.

    Dann: ich habe seit einigen Monaten mein Gästebuch in mehreren Installationen online und es werden *alle* Spams zuverlässig geblockt - inzwischen über 6000 pro Monat. Hierbei hat sich gezeigt, dass (wie auch immer) versteckte Felder die meisten Spams blockieren, aber einige dennoch durchkommen würden. Für diese hat sich insbesondere eine Prüfung der Ausfüllzeit des Formlars als nützlich erwiesen. Nur sehr wenige (Test-)Spams wären ohne mein zusätzliches Inhaltsfilter durchgekommen.
    Mein Fazit: es geht wirklich ohne Captchas oder andere nervige Hürden.

    freundliche Grüße
    Ingo

    1. Moin!

      Dann: ich habe seit einigen Monaten mein Gästebuch in mehreren Installationen online und es werden *alle* Spams zuverlässig geblockt - inzwischen über 6000 pro Monat. Hierbei hat sich gezeigt, dass (wie auch immer) versteckte Felder die meisten Spams blockieren, aber einige dennoch durchkommen würden. Für diese hat sich insbesondere eine Prüfung der Ausfüllzeit des Formlars als nützlich erwiesen.

      Hm, wenn ich schon Sessions für meine Formulare verwende, dann könnte ich dort natürlich auch die Zeit des Formularaufrufs speichern; den Zeitstempel dafür als verstecktes Feld mitgeben finden intelligente Bots bestimmt auch irgendwann heraus.

      Dann muss ich mal anfangen Zeiten zu messen, wie lange ein durchschnittler Spambot vs. eines durchschnittlichen Menschen brauchen.

      Viele Grüße,
      Robert

      P.S.: ich weiß nicht, wie es auch geht, aber bei mir hält sich der maschinelle Spam mittlerweile sehr in Grenzen, dafür nervt menschlicher Spam, gegen den man sich technisch nicht so erfolgreich schützen kann.

      1. Hi,

        den Zeitstempel dafür als verstecktes Feld mitgeben finden intelligente Bots bestimmt auch irgendwann heraus.

        Die Bots sind so doof ... wirklich. Und wenn es denn wirklich mal einen intelligenteren geben sollte, dann verschlüssel ich die Angabe einfach. Glaube aber nicht, dass das nötig sein wird, solange Captchas Hochkonjunktur haben.

        Dann muss ich mal anfangen Zeiten zu messen, wie lange ein durchschnittler Spambot vs. eines durchschnittlichen Menschen brauchen.

        Ich hatte da mal eine Anfrage hier. Und michg dann für 24sek <-> 24std. entschieden. Die meisten Bots sind viel schneller, aber einige brauchen doch schonmal um die 20 Sek. oder nutzen ein einmal eingelesenes Formular.

        freundliche Grüße
        Ingo