Für Menschen · Seien Sie begeistert und Sie werden begeistern !
Formulare sind ein begehrtes Ziel für Spamer. Es gibt die unterschiedlichsten Methoden um diese Spamer fern zu halten oder zu filtern. Eine Möglichkeit ist die Integration eines zusätzlichen input-Feldes, welches bei aktivem JavaScript ausgeblendet wird. Dieses Feld übergibt einen Schlüssel. Besuchen Leser die Seite ohne JS, dann müssen sie diesen Schlüssel eingeben. Dies ist nicht so einfach für den Spamer, der auch ohne JS kommt, wenn man diverse Möglichkeiten ausschöpft. Diese Möglichkeit habe ich bereits erfolgreich im Einsatz und nähere Informationen kann man im Artikel „JS AntiSpam“ nachlesen.
Eine ähnliche simple Methode ist aber ebenfalls mit CSS möglich. Leider ist diese einfache und effektive Methode nicht von mir, sondern wurde hier lediglich verwirklicht. Die Idee stammt von modernblue.
Auch CSS lässt es zu, dass man Bereiche des HTML ausblenden kann - display: none;. Nun ist es so, dass Spamer an sich dumm sind und jedes Feld, welches sie in einem Formular antreffen, ausfüllen. Dies lässt sich ohne Probleme abfragen, in meinem Beispiel mittels PHP. Ist also das Feld gefüllt, so handelt es sich um einen Spamer und es werden keine weiteren Aufgaben abgearbeitet.
Damit nun der Besucher nicht extra eine Anleitung lesen muss, bevor er das Formular nutzen kann, blenden wir dieses input-Feld aus.
Die verwirklichte Idee kann man sich ansehen und den Code ebenfalls downloaden.
Das Formular bekommt also ein weites Feld:
Damit könnte ein einfaches Formular folgendermaßen aussehen.
Mit Hilfe von CSS wird das Feld ausgeblendet, für menschliche Besucher nicht sichtbar.
.spamcheck {
display: none !important;
}
Weitere Informationen zum Code und Demo sind unter unter diesem Link zu finden.
Kommentarregeln: Bleib cool, kritisch ist in Ordnung, aber wenn du unhöflich bist, dann lösche ich deinen Kommentar. Bitte benutze deinen persönlichen Namen oder Initialen und nicht den Namen eines Unternehmens, dies würde als Spam gewertet und wird gelöscht. Der Zusammenhang zwischen Namen und URL sollte nicht offensichtlich auf Spam hindeuten! ♥ Ansonsten, vielen Dank für den Kommentar und viel Spaß mit meinem Blog.
händischer Spam:
Beachte die Kommentarregeln, jede Form von versuchtem Spam wird gelöscht. Warum und wieso steht in einem meiner Beiträge.
Bezug auf Textstellen:
Du kannst direkt bezug auf Textstellen im Beitrag nehmen. Dazu muss lediglich der Bereich im Artikel markiert werden; daraufhin erscheint ein Button, der den markierten Text in das Kommentarfeld übernimmt und als Zitat auszeichnet. Die Funktion ist nur bei aktivem JavaScript nutzbar.
xHTML:
Du kannst folgende Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <code> <pre> <em> <strong> <strike> <ul> <ul> <li>
Achte darauf, wenn du Code im Kommentar hinterlegen willst, dann muss der Code maskiert sein. Dann wird er nicht interpretiert. Der Code muss mit Hilfe von HTML-Entities dargestellt werden, d.h. dass man z.B. < als < und > als > einfügt.
E-Mail-Benachrichtigung bei neuen Kommentaren ?
Wenn der Haken in der Checkbox gesetzt ist, dann wirst du über neue Kommentare vie E-Mail informiert. Der Versand erfolgt nur, wenn du die URL in der Bestätigungs-E-Mail genutzt hast oder schon Abonnent hier im Blog bist.
Kommentar erscheint nicht:
Alle Kommentare werden manuell geprüft, freigegeben und nach Möglichkeit beantwortet. Bitte um etwas Geduld und Nachsicht.
Identifikationsbilder (Avatare):
Auf Gravatar.com kann man sich mit seiner E-Mail-Adresse registrieren und ein Bild hochladen, dann erscheint dieses Gravatar hier und in vielen weiteren Blogs.
Spamschutz:
Das Kommentarformular ist mit einem Spamschutz ausgerüstet. Solltest du diesen Artikel ohne JavaScript besuchen und kommentieren wollen, so muss du die Frage beantworten und das jeweilige Wort in das Textfeld eingeben.
bueltge.de [by:ltge.de] wird von Frank Bültge geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.
Das Weblog wird angetrieben von WordPress und aktuell gibt es 892 Beiträge, 16496 Kommentare in 14 Kategorien und 450 Tags.
Das Blog wird liebevoll mit xHTML & CSS in Handarbeit gestaltet.
Design und Code ist unter Copyright
© 2001 - 2010 bueltge.de [by:ltge.de]
11. Juli 2007 um 14:18
Die Idee, ein Feld per CSS auszublenden, ist herrlich einfach. Beim nächsten Formular werde ich das ausprobieren. Dann zeigt sich auch, ob das Formular von einem Bot ausgefüllt wird oder von einem Menschen.
Menschliche Bots soll es nämlich angeblich auch geben, wollte mir jemand weismachen. So recht glauben kann ich es zwar nicht, aber das wird sich ja durch diese Methode zeigen.
11. Juli 2007 um 20:31
genial einfach; einfach genial. danke.
12. Juli 2007 um 09:29
Wir hatten sowas mal in einem Gästebuch eingebaut, haben dann aber doch Spam erhalten. Wir haben das Gefühl, dass die Bots es erneut versuchen, wenn eine Fehlermeldung kommt und dann die Felder variieren.
12. Juli 2007 um 18:59
Den php-Code füge ich einfach in die wp-comments-post.php ein, richtig?
13. Juli 2007 um 07:46
@Ben: wenn du es innerhalb von WordPress nutzen willst, dann ist das nicht so einfach, da die POST-Auswertung nicht innerhalb des Themes statt findet, dazu müsste du die Core-Dateien bearbeiten oder ein Plugin erstellen.
13. Juli 2007 um 08:03
Also reicht es nicht, wenn ich HTML-, CSS-Code in mein Theme einbinde und den PHP-Code in die WordPress-Datei?
13. Juli 2007 um 09:02
Nein, die Prüfung würde nicht stattfinden. Die findet mit Hilfe einer Datei in wp-includes statt. Ich hatte hier schon mal einen Artikel - Spamschutz durch eine zusätzliche Checkbox, das sollte dir helfen. Dann geht es.
13. Juli 2007 um 15:08
Noch besser funktioniert das ganze, wenn man die Felder umbennent also das Attribut
nameändert und den Namen der Spamfalle in Autor ändert. Sichtbar ändert das nichts, doch Spambots füllen lieber die Felder mit Namenauthoroderurlaus.18. Juli 2007 um 03:25
18. Juli 2007 um 10:05
Dass die Idee von modernblue (per CSS ausblenden) stammt, bezweifle ich. Er hat den Artikel dazu im Blog am 25.06. erstellt. Ich selbst nutze diese Möglichkeit in meinem Gästebuch bereits seit über einem Jahr
18. Juli 2007 um 10:42
Das mag sein, aber meine Inspiration stammt von dort. Bist du mit der Lösung zufrieden?
18. Juli 2007 um 11:24
Ja, seit ich das eingebaut habe, ist Ruhe. Hatte ne Zeitlang mit bis zu 50 Spam-Einträgen am Tag zu kämpfen, so dass ich das GB irgendwann zeitweise abschalten musste, bis eine Lösung gefunden war. Auf Captcha wollte ich verzichten, da ich diese selbst nervig auf anderen Seiten finde. Und was ich nervig finde, baue ich sicher nicht in meine Seite ein.
Dann kam mir die Idee, ein Feld mit dem Namen "message" einzubauen und dieses einfach mit CSS auszublenden. Wenn dieses jedoch ausgefüllt ist, wird der Eintrag ignoriert.
Diese Lösung ist bei mir seit dem 09.06.2006 online und seitdem habe ich keinen Spam mehr durch Bots.
18. Juli 2007 um 12:49
Herzlichen Dank für die Info. Ich habe es in einem Projekt genutzt und mal sehen, wie sich die Lösung schlägt. Bisher bin ich eigentlich sehr zufrieden mit meiner JavaScript-Version.
30. Juli 2007 um 21:56
Die Idee mit dem ausgeblendetem Textfeld ist gut, leider wird es aber bei ausgeschaltetem CSS (diese Funktion können inzwischen die meisten Browser) sowie in textbasierten Browsern wie Lynx angezeigt.
Auch sorgt meiner Meinung nach diese Variante für Verwirrung bei Menschen mit Behinderungen, die auf alternative Ausgabetechniken (Brailzeile oder Sprachsynthese) angewiesen sind
3. August 2007 um 14:30
27. April 2008 um 23:41
4. Juni 2008 um 14:18
7. August 2008 um 14:28
Ich frage mich gerade, ob diese Mehode noch "aktuell" ist. Also ein Jahr später....
Und ich frage mich auch noch, ob es denn nicht noch sinnvoller wäre das versteckte Feld per javascript mit einem gewissen Wert zu füllen bei onlick auf den submit Button.
Weil der Bot drückt ja nicht auf den Button, sondern schickt ja nur einen Request, oder was meinst ihr dazu?
Grüße
Matthias
7. August 2008 um 14:31
@Matthias: Die JS-Lösung ist definitiv besser, nutze ich auch in einem Plugin für WordPress.
7. August 2008 um 14:41
Hi Frank,
öhm, welche JS-Lösung meinst Du?
Ein Plugin ist sinnlos für mich, weil ich diesen Schutz in eine "Nicht-Wordpress" Seite einbauen will.
Grüße
und danke..
Matthias
7. August 2008 um 15:08
@Matthias: Ich prüfe, ob der User per JS kommt, wenn nicht, dann muss ein Fedl mit einem vorgegebenen Text ausgefüllt werden. Der Inhalt wird aus einem Array heraus befüllt, per Zufall. User mit deaktivem JS müssen also das Feld ausfüllen, alle anderen bekommen es durch JS ausgefüllt. Spamer kommen ohne aktives JS und müssen das Feld ausfüllen, dafür durchsuchen sie den Code. Daher zerpflücke ich noch das Wort in mehrere Teile und der User ohne JS bekommt es nur zusammen gezeigt.
Das Pugin heist JS Antispam, haben auch schon andere User genutzt und für nicht WordPress-Seiten umgebaut.