Netzwerkanalyse, Fehlersuche, Testberichte
Home / News
Netzwerkanalyse
Grundlagen
Verkabelung
Erste Schritte
Baselining
Let's sniff
Tools
Auswerten/Filtern
Typische Probleme 1
Typische Probleme 2
Sicherheit
Bücher
Tutorials
Cacti
DSL einrichten
DynDNS einrichten
m0n0wall | pfSense
Nmap
VirtualBox
Wireshark
FAQ
Know How
Testberichte
Hardware-DB
Netzwerklexikon
Links / Service
Suche
Kontakt
Impressum
Feedback
Sitemap
Tutorials

Dynamische email-Adressen zur Abwehr von Spam generieren

Sie betreiben eine Website und wollen bzw. müssen eine Kontaktadresse im Impressum angeben? Eine als Text angezeigte Adresse wie vorname.nachname@example.org wird in einiger Zeit sicher stark mit Spam bedacht.

Lösungen zur Anzeige der Kontaktadresse mit Grafiken, Flash oder Java Script sind alle nicht wirklich benutzerfreundlich.

Die hier vorgestellte Variante erzeugt eine spezielle Adresse, die normal als mailto-Link auf den Seiten erscheint und vom Besucher angeklickt werden kann.

Die Adresse hat das Format dynamail-JAHRMONAT-CRC32-IP DES BESUCHERS@example.net.
D.h. das aktuelle Jahr, der Monat und die IP-Adresse des Clients der Ihre Seite aufgerufen hat gehen in die Adresse ein.
Die Prüfsumme (CRC32) schützt die Adresse vor Manipulation durch Dritte.

Der Mailserver der angesprochenen Domain sollte natürlich alle Adressen entgegennehmen (aka Catch-All).

Damit ist es problemlos möglich, die eingehenden Mails bei Bedarf zu filtern. Zusätzlich erkennt man auch noch, von welcher IP-Adresse aus die Spammer die Mailadresse ausgelesen haben.

# dynamail.pl - CGI-Script zur Generierung einer email-Adresse im Format
# dynamail-JAHRMONAT-CRC32-IP DES CLIENTS@domain.tld
#
# Mirko Kulpa, April 2004
#

use CGI::Carp 'fatalsToBrowser';
use String::CRC32;

print "Content-type: text/html\n\n";

# an diese Domain geht die Mail
my $domain = "example.net";

# Werte lesen
$remote_addr = $ENV{'REMOTE_ADDR'};     # IP-Adresse

my($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);  

# CRC32 bilden, String kann verändert werden
my $crc = crc32("$domain $remote_addr $year $mon dynamail");

# Datum lesbar machen
$year += 1900;
$mon  += 1;
if ($mon < 10) { $mon = "0" . $mon; }

my $mail = "dynamail-$year$mon-$crc-$remote_addr\@$domain";

print "<a href=\"mailto:$mail\">$mail</a>";

# end

Das Script wird per Server Side Include (SSI) in die Seiten eingebunden. SSI werden vom Webserver vor der Auslieferung der Seite an den Client abgearbeitet. In einer HTML-Datei sieht das dann so aus:

<HTML>
<HEAD>
<TITLE>Testseite</TITLE>
</HEAD>
<BODY>
<P>
Sie erreichen uns unter der Adresse: 

<!--#include virtual="/cgi-bin/dynamail.pl" -->

</P>
</BODY>
</HTML>

Normalerweise sucht der Webserver nur in Dateien mit einer speziellen Erweiterung (z.B. shtml) nach Server Side Includes. Mittels eines Eintrages in die Datei .htaccess kann man auch Dateien mit der Erweiterung html parsen lassen:

# .htaccess
Options Includes
AddType text/x-server-parsed-html .shtml
AddType text/x-server-parsed-html .html

 

 
© 2004-2023, network lab - we make your net work - Netzwerkforum
aktualisiert am 22.03.2012