Robot Devil 2/2

Schutz gegen Spam-Bots

E-Mails sind heute fester Bestandteil des Berufsalltags. Da ist es nur logisch, dass man auf seiner Website auch gerne seine E-Mail-Adresse angeben möchte. Mehr noch, nach §5 TMG Abs. 1 ist die Angabe einer E-Mail-Adresse im Impressum aller „ge­schäfts­mäßig“ betriebenen Websites (das sind so ziemlich alle Websites, die über eine Veröffentlichung von Katzen- und Urlaubsbildern hinaus gehen) zwingend vorgeschrieben.

Probleme bereiten hier so genannte E-Mail-Harvester (auch Spam-Bots genannt). Das sind Programme, die aus Ihrer Website alle E-Mail-Adressen herausfischen, um Ihnen anschließend unverlangt viel lustige Werbung für meist dubiose Produkte oder „Dienstleistungen“ zu senden.

Es gibt viele kreative Ansätze, um das Auslesen von E-Mail-Adressen durch Spam-Bots zu Verhindern (oder zumindest zu erschweren), während die Adresse für Menschen weiterhin erkenn- und nutzbar bleibt. Auf vielen Websites sieht man daher E-Mail-Adressen, die in der Form name [at] domain [punkt] de umschrieben werden. Um den rechtlichen Erfordernissen zu genügen, müsste diese Form der Umschreibung immerhin erläutert werden, was in Fließtexten meistens unpraktisch ist. Außerdem sind in dieser Form umschriebene Mail-Adresse auch nicht barrierefrei, da sie von Screen Readern nicht korrekt dargestellt werden. Zusätzlich versuchen intelligentere Spam-Bots inzwischen, die Umschreibung zu interpretieren und ersetzen beispielsweise mit Hilfe regulärer Ausdrücke [at] ganz einfach mit dem korrekten @-Zeichen.

Gegen einfach strukturierte Spam-Bots hilft eine Unicode-Kodierung der E-Mail-Adresse. WordPress bietet hierfür eine eigene Funktion antispambot(), die aber nicht automatisch für Inhalte verwendet wird. Abhilfe schafft das einfach zu installierende Plugin EMail Address Encoder, das direkt nach der Installation alle E-Mail-Adressen (auch im Fließtext!) automatisch codiert, dem Webseiten-Besucher im Front End aber mit Hilfe von JavaScript korrekt darstellt. Während die Adresse im Quelltext der HTML-Seite unlesbar ist, lässt sich die Codierung leider mit textbasierten Browsern trotzdem leicht umgehen (z.B. mit lynx -dump | grep @).

Eine interessante Alternative ist die auf Wikipedia genannte Verwendung von CSS, das von den meisten Spam-Bots aus Effizienzgründen bisher nicht berücksichtigt wird. Beispiel:

name<span style="display:none;">-DIESEN TEXT ENTFERNEN-</span>@<span style="display:inline;">example.com</span>

Auf Grund der CSS-Anweisung display: none; wird der eingeschobene Text nur im Quelltext angezeigt, nicht aber im Front End. Der Webseiten-Besucher kann die Adressen also bequem in sein E-Mail-Programm kopieren und auch die Wiedergabe im Screen Readern sollte keine Probleme bereiten.

Allerdings ist die Eingabe etwas umständlich und würde zumindest in WordPress häufiges Umschalten in den Text-Modus des Editors erfordern. Praktischer ist hier die Verwendung eines Shortcodes, also einer Art Textbaustein, bei dem man im Fließtext E-Mail-Adressen in der Form [e-mail name@domain.de] eingibt, die dann mit Hilfe der WordPress Shortcode API automatisch in die gewünschte Form umwandelt werden.