xwolf: Mailadressen absichern

Beitrag lesen

Hi,

ich arbeite gerade an einen Anti-SPAM-Programm, wozu auch ein Artikel gehoert, welcher deine Frage behandelt.
Dabei wird die Frage nachgegangen, wie SPAM-Spider vorgehen.
Dazu gehoert auch die Frage, ob sowas
xwolf@xwolf.de
sicher ist.

Hier der Auszug:

Welche Moeglichkeiten gibt es ueberhaupt, einen String danach zu pruefen ob es
eine valide E-Mailadresse ist?
1. Die Syntax.
   In Perlnotation wuerde ein einfacher Check durch diesen
     Ausdruck mit Regular Expression definiert werden:
        if ($mail =~ /[1]+@[\w.-]+$/) { return 1; }

(Dieser Ausdruck ist natuerlich etwas vereinfacht. Wenn man die
     Adresse voll gemaess der RFC testen will, waere die Regular Expression etwas
     laenger. Ich empfehle hierzu ein Blick in das Modul CheckRFC.pm von
     Andre Malo.
     http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/selfforum/selfforum-cgi/shared/CheckRFC.pm?rev=1.11&content-type=text%2Fvnd.viewcvs-markup
     )

Die meisten SPAM-Robots checken nur die Syntax eines Strings nach und nehmen
   bei einem Match dann den Teil des Strings der als E-Mailadresse erkannt wurde
   in die Adressliste auf.

Neuere SPAM-Robots beruecksichtigen bei der Pruefung des Strings auch andere Notationen,
   wie zum Beispiel die Hexadezimalwerte der Ascii-Charsets.
   So gilt und galt es als hilfreich, auf einer Webseite die E-Mailadresse wie folgt
   im HTML-Source zu schreiben:
       xwolf@xwolf.de

Vgl: http://www.zahoo.de/homepage.shtml

Diese Methode ist hilfreich gegen dumme Robots. Neuere Robots ersetzen alle Notationen
   und Sonderzeichen und erkennen deswegen auch dies, bzw. die uebersetzte Variante
   als gueltige E-Mailadresse.
   In Perl ist die Uebersetzung von ASCII zu Hexadezimal eine Zeile.
   Genauso wie aber auch die Rueckuebersetzung von Hexadezimal zu ASCII.
   Wer in der Lage ist, ein Suchrobot zu schreiben, fuer den ist der Einbau von sowas
   nun wirklich ein Klaks! Der einzige Grund, warum bekannte SPAMer-Robots es oft noch
   nicht eingebaut haben, duerfte eher der sein, dass die Entwickler auch etwas
   verdienen wollen...

Aehnlich verhaelt es sich mit dem umstrittenen 'Trick' alle E-Mailadressen nur
   ueber den JavaScript-Befehl document.write auszugeben.
   Beispiel
   (aus http://www.akademie.de/websiteaufbau/tipps_tricks/administration/webmaster-tricks/mailto-maskerade.html):

<script language="JavaScript">
 <!--
 var name = "max";
 var domain = "mustermann.de";
 document.write('<a href=mailto:' + name + '@' + domain + '">');
 document.write(name + @ + domain + '</a>');
 -->
 </script>

Genauso wie bei den vergeblichen Versuchen von Webworker-Newbies, ihren HTML-
   Source zu verschluesseln, ist auf langer Sicht auch dies sinnlos: Alles was
   ein Browser decodieren und anzeigen kann, kann auch ein Robot erkennen.
   Robot-Programmierer sind nicht duemmer als Browser-Programmierer. Erst
   recht nicht, wenn die Codes fuer die Browser OpenSource sind.

Der Aufwand der Syntaxpruefung ist gering. Module zum Parsen von Webseiten gibt
   es zudem genug.
   Als Perlprogrammierer muss man da noch nichtmal mehr viel Gehirnschmalz einsetzen,
   haben dies doch laengst andere Leute gemacht und ihre Ergebnisse als CPAN-Module
   zur Verfuegung gestellt:
   http://www.cpan.org/modules/by-category/09_Language_Interfaces/


  1. \w.- ↩︎