DevTrain Startseite Advanced Developers Conference vom 14.-15. Februar 2011  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren


   Autor: Hannes Preishuber Artikel Drucken
        
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.

 


DevTrain Camp - Schneller zum .NET 3.5 Developer
 
Verwandte Artikel      Verlinkte Dokumente
    Keine verknüpften Dokumente
    Keine Links vorhanden

  Erfasst am: 23.09.2003
  Gültig bis: 22.12.2003
32 Ratings
Bewertung: 60,0%
schlecht    sehr gut  

 
© Copyright 2007 ppedv AG