DevTrain

Autor: Hannes Preishuber

Email Adressen unsichtbar machen mit HTC

SPAM ist ein Ärgernis. Soweit bekannt werden eMail Adressen meist von Websites gecrawlt. Dabei wird einfach nach mailto gesucht und die Nachfolgende Adresse in die Datenbank gelegt. Abhilfe schafft das verschleiern der eMail Adresse indem man sie z.B. als Bild auf die Website packt.

Ich hab mir eine neue Methode unter Zuhilfename von HTC überlegt.

Dazu wird zunächst jedes Vorkommen von eMail Adressen auf der Website codiert. In meinem bescheidenen Beispiel geschieht das durch mehrmaliges einfügen von REM in die Adresse. Sie können sich auch einen (automatisierten) Mechanismus ausdenken.

Dann hängen wir über die Style Klasse my and das Label ein Style. Labels werden im Browser per SPAN dargestellt.

Die Style Klasse my wird in der Seite im HEAD Bereich definiert. Über das Attribut Behavior wird die URL der HTC Datei referenziert.
<STYLE>
.my { FONT-SIZE: 0.8em; BEHAVIOR: url(rememail.htc); FONT-FAMILY: Verdana }
  </STYLE>
 </HEAD>
 <body MS_POSITIONING="FlowLayout">
  <form id="Form1" method="post" runat="server">
   <asp:Label id="lblEmail" runat="server" CssClass="my">infoREM@REMppedv.REMde</asp:Label>

Dies veranlasst den Browser diese Datei zu laden und quasi einzubinden.

In der REMMAIL.HTC Datei wird das Event ondocumentready aktiviert (Attach). Dies wird gefeuert, wenn die Seite fertig geladen ist. Dann wird die Funktion Init ausgeführt. Init ist kein reservierter Name, sondern für das Beispiel willkürlich gewählt.
Da das Behavior explizit als CSS des SPAN's existiert, kann der Inhalt des SPAN direkt per innerText ausgelesen werden. Dann wird noch per Regular expression und Replace die REM entfernt und der Inhalt wieder zurückgeschrieben.

<PUBLIC:ATTACH event="ondocumentready" handler="init" />
<SCRIPT language="JScript">
function init()
{
var str=innerText;
var re;
re=/REM/g;
innerText=str.replace(re,"");
}
</SCRIPT>


Soweit funktioniert das ganze aber nur im IE5 und höher. Suchmaschinen und auch Crawler führen keine Jscript Funktionen aus, sodas die Umwandlung nicht erfolgt. Selbst ein Parsen von Jscript überfordert herkömmliche Algorythmen völlig.
Die eMail Adresse ist perfekt verschleiert. Ich wage zu behaupten, das 99% der Webentwickler, selbst nach einem Blick in HTML Quellcode, nicht ahnen was ihnen passiert. Ein weitere Vorteil ist die wiederverwendbarkeit des HTC Files in allen Websites. Trenung von Code und Design am Client, wie wir das von ASP.NET her kennen.

 


Erfasst am: 23.09.2003 - Artikel-URL: http://www.devtrain.de/news.aspx?artnr=884
© Copyright 2003 ppedv AG - http://www.ppedv.de