Das grundlegende Problem dürfte jedem Webdesigner oder Webmaster bekannt sein, sobald Emails im Klartext auf einer Webseite dargestellt werden, kommen die Spambots vorbei und lesen die Mail-Adressen aus. Das Resultat davon ist leicht vorherzusehen, man bekommt mit der Zeit massenweise Spam-Emails.
Es gibt zwar einige Tools die dabei helfen Email-Adressen zu schützen, aber nicht alle sind dabei Effektiv. Ein Beispiel wäre, dass die Email-Adressen in Hash-Zeichen umgewandelt werden oder mit JavaScript escapes versehen werden. Mittlerweile sind die meisten Spambots allerdings in der Lage die auf diese Weise kodierten Email-Adressen zu entschlüsseln und zu missbrauchen.
Eine gute und effektive Möglichkeit Email-Adressen zu schützen ist, dass sie nicht aussehen wie Email-Adressen. Der Link geht auf eine HTML Datei und nicht mit mailto: direkt auf eine Adresse. Der Text (innerHTML) zeigt im besten Fall auch keine Email-Adresse und schon gar nicht mit den sowieso beliebten test(at)test.de oder test[at]test.de Ersatzzeichen. Die werden auch von vielen Spambots mit ausgelesen.
Ein gut verschlüsselter Email-Link könnte also wie folgt aussehen:
<a href="kontakt.html" class="mailcrypt">info<span><span>∂</span></span>webdesign-podcast.de</a> |
Das ∂ Zeichen kann natürlich auch durch ein Bild von einem @ Zeichen oder sonst irgendetwas ersetzt werden.
An dieser Stelle kommt jetzt mein jQuery Plugin MailCrypt ins Spiel. Denn MailCrypt ersetzt das ∂ durch ein richtiges @ Zeichen und ändert den href des Links auf einen richtigen mailto: Link.
Für die Leute die kein JavaScript aktiv haben wird eben dieses Zeichen ∂ statt dem @ angezeigt da es dem @ relativ ähnlich ist. Wenn man dann auf den Link klickt wird man auf eine Kontakt Seite weitergeleitet. So sind also auch Leute ohne JavaScript abgesichert.
Das Script selbst ist OpenSource (GNU GPL oder MIT) extrem klein und einfach einzubinden.
Im Head der Webseite werden die jQuery und das MailCrypt Script eingebunden:
<script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/mailcrypt.js"></script> |
Danach wird die Funktion aufgerufen die das MailCrypt Script startet, es ist wichtig das die Funktion innerhalb der jQuery $(document).ready(); Funktion aufgerufen wird, also nachdem der komplette DOM geladen wurde:
<script type="text/javascript"> $(document).ready(function(){ $('a.mailcrypt').mailcrypt(); }); </script> |
a.mailcrypt gibt dabei an auf welches Email Links die Funktion angewendet werden soll.
Auf diese Art und Weise sind Email-Adresse halbwegs sicher.
MailCrypt herunterladen und Beispiel ansehen:
MailCrypt mit Beispiel herunterladen (37kb) | Hier ist eine Vorschau bzw. ein Beispiel des Scriptes
Schlagworte zu diesem Artikel: Email, jQuery, Plugin, Spam, Spamschutz, Verschlüsselung
Ihr seid einfach genial, hilfsbereit und zuverlässig!!!
Hab in Abständen von einigen Tagen zwei Anfragen an euch gehabt und auf beide habe ich von euch innerhalb kurzer Zeit eine hilfreiche und kompetente Antwort erhalten. Das ist einfach super!
Ich liebe euren Podcast, denn die Artikel sind sehr hilfreich.
Macht weiter so.
Liebe Grüße aus Österreich
Hans
Hey, cooler Artikel. Hab das Script in ähnlicher Weise genutzt- leider ist auch dieses nicht wirklich sicher. Die einzige Abhilfe schafft zum Beispiel keine info@ zu verwenden- denn egal wie viele Variablen, Sonderzeichen etc zwischen info und domain.tdl stehen, bots erkennen das muster.
ich habe zum beispiel mal eine verschlüsselung like:
info[{/64636hgedfhgd]domain.ltd verwendet – weniger spam, aber spam.
alias[{/64636hgedfhgd]domain.ltd – hingegen blieb der spam bei gleich 0. aber ich kann aus erfahrung sagen, dass dein script schon mal ne menge frust mit spammails gar nicht erst aufkommen lässt.
Das liegt allerdings mit unter daran, dass die Spammer automatisch Mails an die [email protected] Adressen schicken. die Variante mit den
[span] irgend ein Schutzzeichen oder Buchstaben gewirr [/span]
funktioniert ganz gut, zumindest besser als HEX Zeichen oder JS escapes.eine interessante ansicht. vor allem nicht der übliche mist, wie ich finde.
Hi,
danke für deinen interessanten Ansatz. Muss ich denk ich mal ausprobieren. Mein bisheriger Ansatz war für dieses Problem einen modifizierten Caesar13-Algorithmus für eine Emailadressverschlüsselung zu nutzen. Dafür gibt es im Web auch einige gute Beispiele.
Aber viele Wege führen nach Rom 😉
Grüße Joachim
Hi,
ebenfalls eine coole Idee – klingt zumindest sicher.