Email-Adresse mit ASCII Code vor Spam schützen

Spamschutz: Email Adressen mit ASCII Code verschlüsseln

Spamschutz: Email Adressen mit ASCII Code verschlüsseln - Foto / Montage: T.Bortels/cpu20.de

Eine ASCII Code Tablelle braucht man immer mal wieder mal – zum Beispiel als Spamschutz. Mithilfe von ASCCII Code kann man nämlich relativ einfach seine E-Mail Adresse „verschlüsseln“ bzw. vor E-Mail Adressen-Sammeln und Spam-Bots verstecken und somit letztendlich seinen Email-Account vor Spam zu schützen. Und das ist gar nicht mal so kompliziert. Hier eine kurze Anleitung.

E-Mail Adresse verschlüsseln – einfacher Spam-Schutz mit ASCII Code

Im Prinzip ist das ‚Verschlüsseln‘ von E-Mail Adressen mithilfe von ASCII Code eigentlich ganz einfach. Ausgewählte Teile der Email-Adresse werden einfach durch den entsprechenden ASCII Code ersetzt – und schon haben automatische Email-Adressen-Sammler (sogn. Email-Harvester, Spambots) kaum noch eine Chance, die E-Mail Adresse automatisch zu lesen. Oder anders ausgedrückt; Das automatische Lesen und Sammeln ist natürlich trotz Verschlüsselung noch möglich – der Aufwand, aus dem ASCII Code die entsprechende Email Adresse zu lesen ist aber sehr viel größer, und daher in den meisten Fällen unwirtschaftlich.

Ver großer Vorteil dieser Methode: Im Browser werden ASCII-Zeichen weiterhin als ganz reguläre Zeichen interpretiert und sind somit für Menschen, für Email Programme und bedingt also auch für Maschinen lesbar. So ist zum Beispiel der klassische Email-Link „mailto:“ nicht beeinträchtig – das funktioniert auch mit einer duurch ASCII Code verschlüsselten Email Adresse. Beim Anklicken einer solchen mit ACII-Code geschützten E-Mail Adresse öffnet sich wie gewohnt das E-Mail-Programm mit bereits eingetragener Adresse und ggf. Betreffzeile etc. Man kann diese Methode also als UX-freundlich einstufen – der Besucher der Webseite bekommt von dem Spamschutz nichts mit.

Und diese ‚Verschlüsselung‘ funktioniert natürlich auch bei WordPress oder anderen Content Management Systemen, wenn man den Seiteninhalt als Quellcode bearbeitet. Dazu muss man in WordPRess ggf. lediglich auf die sogn. „Text Ansicht“ wechseln. In der Text-Ansich lässt sich der Quellcode eines Beitrag z.B. der Kontaktseite bearbeiten – hier kann man also anstelle der echten E-Mail Adresse die über ASCII Code verschlüsselte Adresse eingeben.

Im Detail funktioniert das Verschlüsseln einer Email-Adresse (oder eines beliebigen Textes) mithilfe von ASCII Code so: anstelle des ’normalen‘ HTML–Codes verwendet man hier und da die entsprechenden ASCII-Zeichen:

  • Vorher – unkodiert:
    <a href=“mailto:mail@….“>mail@….</a>
  • Nachher – mit ASCII-Zeichen kodiert::
    <a href=“mailto:m&#97;il@….“>m&#97;il@….</a>

Email-Schutz in WordPress einbauen

In der Regel tauchen Emailadressen innerhalb einer Webseite an verschiedenen Stellen und auf mehrern Seiten auf. Es wäre natürlich ziemlich umständlich, die Adressen überall manuell zu codieren. Stattdessen kann man das Codieren automatisieren. In WordPress kann man z.B. folgende kleine Funktion in functions.php des aktiven Themes einbauen. Damit wird der Spam-Schutz automatisch in alle Texte eingebaut, die über the_content und the_excerpt abgerufen werden.

/// email scramble

function email_scramble($text){

  $replace = array(
    // 'STRING TO REPLACE' => 'REPLACE STRING WITH THIS'
    'info@cpu20.de' => '&#105;nfo&#64;&#99;p&#117;20&#46;de',
    'info@cpu20.com' => '&#105;nfo&#64;&#99;p&#117;20&#46;de'
  );

  $text = str_replace(array_keys($replace), $replace, $text);
  return $text;

}

add_filter('the_content', 'email_scramble');
add_filter('the_excerpt', 'email_scramble');

Funktioniert der Email-Scramble als Spam-Schutz?

Wie effektiv das ‚Verschlüsseln‘ von Email-Adressen mithilfe von ACII Code letztendlich wirklich  als Spamschutz funktioniert, läßt sich nur schwer abschätzen. Aber schaden kann es jedenfalls nicht, wenn man Email-Adressen mit ASCII-Zeichen codiert. Codierte Email-Adressen müssten zunächst decodiert bzw. interpretiert werden – ein Aufwand, der das automatische Sammeln zumindest verlangsamt und somit erschwert. Und wenn es auch nur einen Email-Adressen-Sammler vom Sammeln abhält, dann hat es seinen Zweck schon erfüllt.

Hier die ASCII Code Tabelle

Um nun eine E-Mail Adresse mit ASCII Code zu verschüsseln geht man wie folgt vor: einfach den entsprechenden ASCII Code kopieren und damit im Quellcode der Seite / des HTML-Dokuments einzelne Zeichen der Email-Adresse ersetzen. Anschliessend sollte man auf jeden Fall testen, ob die E-Mail Adresse sich trotzdem noch im Browser anklicken läßt – und ob sich wie gewohnt auch das E-Mail Programm öffnet.

a
&#97;
a
&#98;
b
&#98;
c
&#99;
d
&#100;
e
&#101;
f
&#102;
g
&#103;
h
&#104;
i
&#105;
j
&#106;
k
&#107;
l
&#108;
m
&#109;
n
&#110;
o
&#111;
p
&#112;
q
&#113;
r
&#114;
s
&#115;
t
&#116;
u
&#117;
v
&#118;
w
&#119;
x
&#120;
y
&#121;
z
&#122;
– (Minus)
&#45;
. (Punkt)
&#46;
@ (at-Zeichen)
&#64;
0
&#48;
1
&#49;
2
&#50;
3
&#51;
4
&#52;
5
&#53;
6
&#54;
7
&#55;
8
&#56;
9
&#57;

Email-Adressen automatisch mit antispambot verschlüsseln

Seit einiger Zeit gibt es die WordPress-Funktion antispambot, die genau das macht, was wir im oben aufgeführten Skript manuell machen: Email-Adressen in ASCII-Code übersetzen, so dass es Spam-Bots erschwert wird, diese einzusammeln. Die folgende Funktion ‚verschlüsselt‘ zwei Email-Adressen, wenn diese im Texteditor (the_content) oder im Teaser-Text (the_excerpt) vorliegen:

/// email scramble

function email_scramble($text){
$replace = array(
// 'WORD TO REPLACE' => 'REPLACE WORD WITH THIS'
'info@cpu20.de' => antispambot('info@cpu20.de'),
'info@cpu20.com' => antispambot('info@cpu20.com'),
);
$text = str_replace(array_keys($replace), $replace, $text);
return $text;
}

add_filter('the_content', 'email_scramble');
add_filter('the_excerpt', 'email_scramble');

Natürlich stellt eine solche ‚Verschlüsselung‘ nur einen minimalen Spambot-Schutz dar. Die Funktion muss in der Theme-Datei functions-php platziert werden – Email-Adressen entsprechend anpassen – und bei Bedarf können auch noch weitere Email-Adressen hinzugefügt werden.

Zusätzlich bzw. alternativ lassen sich Email-Adressen auch per Shortcode vor Spambots schützen:

function email_scramble_shortcode( $atts, $content ){
return '<a href="'.antispambot("mailto:".$content).'">'.antispambot($content).'</a>';
}
add_shortcode( 'email', 'email_scramble_shortcode' );

Email Spam-Schutz per Plugin

Ich habe immer wieder mal gesucht, und nie ein überzeugendes Plugin gefunden. Ich wollte immer einen einfachen, möglichst automatischen Schutz vor Spambots. Und es sollten am besten auch Email-Adressen gechütztt werden, die in ACF-Feldern eingetragen sind – also in individuell erstellten Feldern aus Advanced Custom Fields. Und kostenlos sollte es natürlich auch sein

Nun bin ich endlich über ein Plugin gestolpert, dass all diesen Anforderungen gerecht wird:  Email Address Encoder – und ich bin begeistert.

Mit folgendem Code-Schnippsel lassen sich auch ACF-Felder vor Spambots schützen:

/* eae_encode_emails */
if ( function_exists( 'eae_encode_emails' ) ) {
add_filter( 'acf/load_value', 'eae_encode_emails' );
}

Einfach den Code in die Theme-Datei functions.php einfügen und schon werden auch alle Email-Adressen in ACF-Feldern automatisch als ASCII vzwl dezimale und hexadezimale Einheiten verschlüsselt und so vor dem Zugriff durch Spambits geschützt. Der Schutz ist zwar nicht perfekt, aber schon sehr effektiv und wohl gegen die überwiegende Zahl von Email-Harvestern wirksam.