E-Mail-Adresse absichern

Illustration zu E-Mail-Adresse absichern

Spambots

Wer kennt das nicht. Wo haben Firmen plötzlich meine E-Mail-Adresse her? Es gibt elektronische Roboter, sogenannte Spambots, die Websites nach E-Mail-Adressen durchforsten. Im angelsächsischen Raum werden sie wie in der Land- und Forstwirtschaft „Harvester“ genannt. Diese Bezeichnung sagt bereits sehr viel über deren Vorgangsweise aus. Es sind tatsächlich Erntemaschinen, die das Internet als Acker betrachten und nur die von ihnen gewünschten Früchte, nämlich E-Mail-Adressen, ernten. Die so erbeuteten Daten werden großteils verkauft und von Spamversendern benutzt. Ich möchte hier einige Gegenmaßnahmen vorstellen.

Ist Abhilfe möglich?

Wie kann man sich gegen diesen Datenklau wehren? Vor etlichen Jahren versuchte man Text durch Bilder zu ersetzen. Das hat aber vor allem den Nachteil, dass dieser nicht mehr als Text erkennbar ist und daher auch von Screenreadern nicht mehr erfasst werden kann. So eine Methode ist aus heutiger Sicht nicht mehr denkbar.

Schutz mittels JavaScript

Eine andere Variante beruht darauf, die E-Mail-Adresse unansehnlich zu machen. Dabei wird mittels JavaScript das @ und der Punkt durch die ausgeschriebene Version ersetzt, wodurch folgendes bekanntes Konstrukt erzeugt wird: meineadresse (at) example (dot) net.
Mich als User nervt diese Art der entstellenden Version regelmäßig, da sie das Auge beim Lesen unweigerlich zum Stolpern bringt. Von der unpraktischen Art der Weiterverwendung gar nicht zu reden.

Eine weitere Variante des Schutzmechanismus, die ich als additive Methode bezeichne, habe ich bei großen Firmen gesehen. Hier werden alle Elemente der E-Mail-Adresse per JavaScript zusammengesetzt. Während der Benutzer diese ganz normal lesen kann, sehen  Spambots nur Adressfragmente, die nicht einmal die verräterische Anweisung mailto: enthalten. Damit wird die E-Mail-Adresse nicht als solche registriert und somit ignoriert. Diese eher aufwändige Variante macht allerdings nur dann Sinn, wenn zahlreiche ähnliche Adressen geschützt werden sollen, wie es bei großen Firmen der Fall ist.

Schutz durch Codierung

Eine andere Möglichkeit ist die Ersetzung einzelner Zeichen oder ganzer Zeichenketten mittels HTML-Entities. Bei dieser von mir favorisierten Methode kann jedes Zeichen durch eine Dezimalzahl ersetzt werden. Da Spambots meist einfach programmiert sind, suchen sie nur nach Zeichenketten, die gültigen E-Mail-Adressen entsprechen. Während der Harvester diese Zeichen aufgrund ihrer Codierung ignoriert – es sind Sonderzeichen enthalten, die bei E-Mails nicht erlaubt sind – stellt der Browser sie für uns sauber dar.

Der grundlegende Aufbau ist sehr einfach. Die einzelnen Zeichen setzen sich immer aus einem einleitenden kaufmännischen „und“ (&), einem darauffolgenden Hash (#), dem dezimalen Code und einem abschließenden Semikolon (;) zusammen. Im Folgenden zeige ich einige Beispiele für HTML-Entities aus dem ASCII Zeichensatz:

  • a: a
  • b: b
  • @: @

Die komplette Liste ist bei freeformater.com abrufbar.

Hält man sich an dieses System, kann man seine E-Mail-Adressen für Spambots „verunstalten“, gleichzeitig bleibt sie für Menschen vernünftig lesbar. Eine zufällige Mischung aus normaler Schreibweise und Codierung erhöht nochmals die Sicherheit vor Spambots, da kein Muster vorausahnbar ist. Diese von mir seit Jahren verwendete Methode ist simpel und effektiv. Der Nachteil besteht allerdings darin, dass jedes gewünschte Zeichen händisch eingegeben werden muss.

Wer allerdings keine statische Seite benutzt, sondern ein CMS-System wie WordPress verwendet, dem steht auch eine automatische Methode zur Verfügung.

Automatismus in WordPress

In WordPress kann man sehr einfach mit ein paar Zeilen Code einen nahezu automatischen Mechanismus einbauen. Dabei wird die jeweilige E-Mail-Adresse im Hintergrund in Dezimalzahlen umgewandelt. Der Clou bei der Sache besteht darin, dass nicht jedes Zeichen codiert, sondern diese bei jedem Seitenaufruf neu randomisiert (zufällig ausgewählt) werden. Diese Funktion nennt sich antispambot().

Beispiel:

<?php 
 echo antispambot('meineadresse@example.at'); 
// Wird folgendermaßen ausgegeben: &#109;&#101;&#105;ne&#97;&#100;res&#115;&#101;&#64;&#101;xampl&#101;.at ?> zu sehen ist aber der ganz normale Text: meineadresse@example.at

Um antispambot() in WordPress zu verwenden, kopiert man zuerst folgenden Code in die Datei functions.php seines Childthemes:

/**
 * Hide email from Spam Bots using a shortcode.
 *
 * @param array  $atts    Shortcode attributes. Not used.
 * @param string $content The shortcode content. Should be an email address.
 *
 * @return string The obfuscated email address. 
 */
function wpcodex_hide_email_shortcode( $atts , $content = null ) {
	if ( ! is_email( $content ) ) {
		return;
	}

	return '' . antispambot( $content ) . '';
}
add_shortcode( 'email', 'wpcodex_hide_email_shortcode' );

Quelle: WordPress-Codex

Sobald man eine E-Mail-Adresse schützen will, muss man sie bei der Eingabe nur zwischen folgende Tags [email] [/email] einbetten.

Beispiel:
[email]meineadresse@example.net[/email].

Letztendlich geschieht der Rest dann von selbst und man braucht sich keine ernsthaften Gedanken mehr über Harvester machen, die E-Mail-Adressen sammeln.

3 Gedanken zu „E-Mail-Adresse absichern“

  1. Hmm, ich befasse mich auch gerade mit diesem Thema im Zusammenhang mit DSGVO und Impressumpflicht, wo ja eine E-Mail-Adresse angegeben sein muss (ein Kontaktformular alleine reicht da wohl nicht). Die Methode, die Buchstaben als HTML-Entities zu codieren, ist ja schon ziemlich alt, und ich kann mir nicht vorstellen, dass die Bots nicht inzwischen dazugelernt haben. Ich schätze, man kann das sogal relativ einfach mit einer Regular Expression decodieren. Mir ist das jedenfalls zu unsicher, daher setze ich weiter auf Bilder statt Text, auch wenn Screenreader damit vielleicht Probleme haben, aber da das nur für das Pflicht-Impressum ist, ist mir das egal. Alle anderen, die mir wirklich schreiben wollen, benutzen eh das Kontaktformular.

    1. Zu Zeiten als ich darüber gelernt habe, wurde bereits gesagt, dass es einfach wäre einem Bot diese Regeln einzugeben. Allerdings würde sich der Aufwand nicht lohnen, da die Mehrzahl der E-Mail-Adressen offen lesbar wären.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert