Spamschutz für öffentlich sichtbare Emailadressen

1

Auf jeder Website im Internet wird zumindest innerhalb des Impressums eine öffentlich zugängliche Email-Adresse stehen. Diese dient üblicherweise nur dazu, den Lesern eine entsprechende Kontaktmöglichkeit zu bieten. Das große Problem ist hierbei allerdings, dass nicht nur Menschen, sondern auch Bots und Crawler, sogenannte Harvester, die Adresse lesen und diese mit Email-Spam attackieren können. In diesem Artikel möchte ich Ihnen einige Lösungsvorschläge vorstellen, mit denen Sie verhindern können, dass öffentlich einsehbare Email-Adressen von Spambots erkannt werden.

1) Sonderzeichen als Wörter ausschreiben

Die wohl am häufigsten verwendete Methode ist das Ausschreiben der Sonderzeichen als Wörter. Meine Email-Adresse würde in diesem Fall in etwa info[at]lb-home[dot]de lauten. Zwar funktioniert diese Methode gut, Spambots erkennen die Email-Adresse nicht mehr als solche, allerdings erkennt auch ein normaler Leser die Adresse erst auf den zweiten Blick. Alles in allem ist diese Lösung zwar funktionell, wirkt allerdings alles andere als professionell.

2) Email-Adresse als Bild einbinden

Eine weitere Lösung stellt das Anzeigen der Email-Adresse als Bild dar. Hierzu erstellen Sie einfach ein Bild mit Ihrer Email-Adresse und fügen es an entsprechender Stelle der Website ein. Spambots haben auf diese Weise keine Chance, die Adresse zu erkennen, der User hingegen kann Sie problemlos lesen. Der große Nachteil dieser Lösung liegt in Ihrer geringen Flexibilität. Jedes Mal, wenn eine neue Adresse angezeigt werden soll, muss ein Bild erstellt und eingebunden werden. Weiterhin verschlechtert sich durch jedes unnötige Bild die Performance der Seite.

3) ASCII-Zeichencodierung verwenden

Eine alternative Lösung ist das Ausschreiben der Email-Adresse mithilfe der entsprechenden ASCII-Codes für jeden einzelnen Buchstaben bzw. die Sonderzeichen. Mithilfe einer Tabelle kann man die Entsprechungen für jeden einzelnen Buchstaben herausfinden und die Adresse auf diese Weise auf der Website einbinden. Sucht man beispielsweise in der oben verlinkten Tabelle nach dem Buchstaben “e”, so findet man den zugehörigen dezimalen Zahlenwert “101″. Um nun das “e” innerhalb von HTML auszugeben, schreibt man e. Dabei reicht es allerdings, nur einige der Zeichen mit ihrem ASCII-Code zu codieren, um die Adresse als solche für Spambots unkenntlich zu machen. Meine gesamte Email-Adresse würde nach dieser Methode info@lb-home.de lauten.
Der Vorteil dieser Lösung besteht darin, dass Spambots die Adresse nicht erkennen können, der Browser die ASCII-Codes aber als Zeichen interpretiert und diese entsprechend darstellt. Deshalb erkennt der User die Email-Adresse direkt als solche, da sie im üblichen Format angezeigt wird.

4) Automatisierung der ASCII-Codierung

Sofern Ihre Website auf WordPress basiert, steht Ihnen die Funktion antispambot() zur Verfügung, um Email-Adressen automatisch nach der in Punkt 2 beschriebenen Methode zu obfuskieren. Dabei wird die Email-Adresse als String an die Funktion übergeben.

<?php echo antispambot("info@lb-home.de"); ?>

Die als String übergebene Adresse wird nun innerhalb des Quellcodes mit den zugehörigen ASCII-Zeichen angezeigt. Der User sieht hingegen nur die normal angezeigte Adresse.
Nachteil dieser Funktion ist die Tatsache, dass sie nicht ohne zusätzliches Plugin (Exec-PHP) innerhalb eines Artikels oder einer Seite in WordPress genutzt werden kann.

Abhilfe für dieses Problem schafft ein Shortcode, der es erlaubt die Funktionalität der antispambot-Funktion auch in Artikeln und Seiten zu verwenden. Kopieren Sie dazu den unten stehenden Code in die functions.php Ihres WordPress-Themes.

// Output spambot protected email address
function LB_secure_email($atts, $content = null) {
	extract(shortcode_atts(array( 'address' => '', 'mailto' => 'true' ), $atts));
	$encoded_mail = antispambot( $address );
	if( $mailto == 'true' ) {
		return '<span><a href="mailto:' . $encoded_mail . '">' . $encoded_mail . '</a></span>';
	}
	else if( $mailto == 'false' ) {
		return '<span>' . $encoded_mail . '</span>';
	}
}
add_shortcode('email', 'LB_secure_email');

Nun steht Ihnen der Shortcode [email] zur Verfügung, an den Sie die zu obfuskierende Email-Adresse mithilfe des Attributs address übergeben. Meine Adresse würde ich in diesem Fall so entsprechend codiert ausgeben können.

[email address="info@lb-home.de"]

Der Shortcode erzeugt in diesem Fall einen mailto-Link, d.h. die Adresse wird als Link ausgeführt und beim Anklicken wird die Adresse direkt in einem eventuell vorhandenen Mail-Client geöffnet. Wer diese Funktion nicht nutzen möchte, übergibt an den Shortcode das Attribut mailto und den Wert false, also folgendermaßen.

[email address="info@lb-home.de" mailto="false"]

5) Fazit

Egal für welche der vorgstellten Lösungen Sie sich entscheiden, rate ich Ihnen unbedingt, niemals Email-Adressen ungeschützt im Klartext im Quellcode einer Seite zu schreiben. Denn es besteht dabei immer das Risiko, Opfer einer Spam-Attacke zu werden. Das gilt zum einen für Ihre eigene Email-Adresse, aber ganz besonders für diejenigen Ihrer User oder Kunden, sofern die entsprechenden Adressen öffentliche einsehbar sind.

Hinterlasse eine Antwort

Ihre Email-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert.

*

Kommentare umschalten

1 Kommentar zu "Spamschutz für öffentlich sichtbare Emailadressen"

  • Klaus sagt:

    Mir gefällt die Lösung mit dem Shortcode sehr gut, ist auch von den Kunden leicht einzusetzen! Vielen Dank für den praktischen Tipp! Klaus