Spam frisch aus der Dose

Es gibt ja unzählige Wege und Anleitungen wie man Spam in seinen Formularen mindern oder ganz verdrängen könnte. Ob Captchas, Rechenaufgaben oder Dienste wie Akismet, sie alle haben ihre Vor und Nachteile.

Bei Arne fand ich nun eine relativ simple Lösung die aber perfekt zu funktionieren scheint.

Der Trick ist denke ich nichts neues, aber dafür sehr effektiv. Um Spambots möglichst eindeutig zu erkennen wird in diesem Beispiel ein zusätzliches Input-Feld im Quelltext eingebunden und im Stylesheet über display:none; bzw. visibility:hidden; für alle CSS fähigen Browser ausgeblendet. Nun füllen Spambots in der Regel ja alle vorhandenen Formularfelder mit irgendwelchem Quatsch aus, beachten dabei jedoch kein CSS. Der “normale” User füllt also das zusätzliche Input-Feld nicht aus, da er es gar nicht sehen kann. Der Spambot hingehen füllt das Feld mit irgendwelchem Müll.

Nun muss man mit einer Programmiersprache wie PHP oder ASP nur noch checken ob das Feld gefüllt wurde, ist dies der Fall kann dann davon ausgegangen werden das es sich um Spam handelt.

Für mich stellt sich dabei nur die Frage der Barrierefreiheit. Soweit ich weis interpretieren Screenreader ja CSS auch teilweise und lesen Objekte mit display:none ebenfalls nicht vor… hat da vielleicht schon jemand Erfahrungen mit gemacht?

Zu guter letzt kann man sich dann noch fragen, wie lange die Spambetreiber denn brauchen werden um ihre Programme so zu stricken, das diese auch CSS halbwegs interpretieren können.



Kommentare zum Thema Fighting Spam - Ein weiterer Ansatz:

1 | Arne schrieb am 01.07.2007 um 17:56
Gravatar dieses Kommentators

Ich denke aber mal, dass man da auf die Intelligenz der User vertrauen und irgendeinen Hinweis einbauen kann, dass dieses Feld nicht ausgefüllt werden sollte.

Mitunter könnte man auch probieren, dieses Feld auf disabled zu setzen und dann schauen, ob Spam-Bots dieses disabled ignorieren. Ich denke ja mal, dass die eher GET- und POST-Requests zusammenbauen statt wirklich das Formular direkt per Eingabe zu füllen. Wenn diese dann das disabled-Attribut ignorieren…

Naja, vielleicht kein ganz so feiner Ansatz ;-) Aber den User dazu zu bewegen, das Feld nicht auszufüllen, dürfte ja nicht allzu schwer sein. Muss man nur Beschreibungen finden, die nicht von Spam-Bots zuzuordnen sind. Denke mir mal, dass sowas wie value=“Do not type here” ziemlich schnell von denen bedacht werden könnte…

2 | Tobias schrieb am 01.07.2007 um 18:02
Gravatar dieses Kommentators

Hi!
Ich habe vor einiger Zeit mal eine ganze Reihe (versuchsweise eine Anthologie…) über Antispam-Techniken für Kommentarformulare geschrieben, in der ich u.a. auch über die von dir beschriebene Technik geschrieben habe. Du findest die Reihe unter http://www.css-petals.net/category.html15

Kurz aus dem entsprechenden Artikel kopiert: [...] Man erstellt ein Formularfeld mit vielversprechendem Titel (z.B. “Name”) und versteckt es ausserhalb des Sichtfensters des Benutzers. Dies sollte nicht einfach mit display:none; o.ä. geschehen, da es zu einfach für den Spambot wäre, dies zu überprüfen (Google-Bot kann es auch!). Ein Verstecken durch negative-margins wäre hier sinnvoller. Ist das Honey-Pot-Eingabefeld erst einmal versteckt, kann man überprüfen, ob jmd/etwas es ausgefüllt hat – ist dies der Fall, handelt es sich um einen Spambot, da ein menschlicher Benutzer am Browser das Eingabefeld gar nicht sehen dürfte. Mit dieser Methode kann man auch ganze Kommentar-Formulare dublizieren und verstecken um Spambots besser zu ködern. Leider funktioniert diese Methode nur solange Spambots nicht anständig CSS verstehen können und außerdem ist auch sie für Behinderte Benutzer nicht sinnvoll, da diese ebenfalls die versteckten Felder sehen [...]

3 | supeermario schrieb am 01.07.2007 um 18:55
Gravatar dieses Kommentators

das ganze wird schon etwas länger erfolgreich praktiziert…
ich kann zumindest bei meinen formularen behaupten, keinen spam mehr zu produzieren…
hier noch eine lösung mit sessionsvariablen…
allerdings setzt das cookies voraus und screenreader werden das versteckte feld mit hoher wahrscheinlichkeit lesen, was aber auch kein problem ist, wenn du dem feld einen ganz normalen namen gibst. du kannst ja vorm formular auch einen hinweis zum “spamschutz” geben.

4 | Christian schrieb am 01.07.2007 um 19:12
Gravatar dieses Kommentators

Also ich bezweifle ehrlich gesagt das die Bots schon so intelligent sind und externes CSS durchforsten. Wenn man die CSS-Klasse dann auch noch ein wenig verkapselt kommt da denke ich kaum ein Bot noch wirklich hinter. Ich sage mal wenn dann 99% der Spammer ausgeschlossen werden wäre das auch schon ein Erfolg. Negative Margins usw. haben aus meiner Sicht immer das Problem das manche alte Browser usw. einfach nicht damit so recht klar kommen, das sicherste ist denke ich also wirklich das ausblenden via display oder der visibility.

Gut das ich gerade an einem Projekt arbeite wo ich das ganze einmal ausprobieren kann, ich bin gespannt.

5 | zoe page schrieb am 20.08.2007 um 13:57
Gravatar dieses Kommentators

guter ansatz. screenreader lesen die label aus den input-boxen, d.h. theoretisch müßte man ja nur das label mit “bitte nicht ausfüllen” deklarieren… oder?

6 | Hansjörg schrieb am 17.08.2008 um 17:18
Gravatar dieses Kommentators

Ein anderer Ansatz bei dem sich SPAM Roboter die Zähne ausbeisen ist folgender:
Ein zusätzliches Formularfeld mit einer einfachen Frage (z.B. Ist Feuer kalt oder heiss?) einfügen. Das Formular wird nur versendet wenn das entsprechende Feld die richtige Antwort hat und das kann nur ein Mensch beantworten. Zu sehen auf http://www.publicat.ch/kontakt.php

7 | Bastian Bensch schrieb am 24.03.2010 um 13:42
Gravatar dieses Kommentators

Mein Lösungsansatz ist folgender undzwar habe ich mit time(); eine zahl gesetzt man nehme diese Zahl plus 5 und suche sich beim absenden nochmal die time raus und wenn das ergebniss kleiner als die neue time ist wird das formular abgeendet ^^

Kommentar-Feed für diesen Artikel


Kommentarfunktion für diesen Artikel geschlossen.



Blogsuche

RSS-Feeds

Plaste & Plastik

plasteundplastik.de - Das Geocaching-Weblog

Die Kategorien


Netz-Fundstücke


Meta / Propaganda