Bei einer solchen missbräuchlichen Manipulationen zum Versand von Spammails handelt es sich um ein ernst zu nehmendes kriminelles Verhalten, das u.U. auch für Sie selbst geschäftsschädigend ist. Deshalb möchten wir Sie bitten, sich die nachfolgenden Informationen zur Absicherung von Mailskripten genau durchzulesen und zu beachten. Tragen Sie Ihren Teil zur Bekämpfung von Spam bei!
Idealerweise werden Werte für den E-Mail-Header schon im Skript hinterlegt, um somit die Manipulation der Daten durch die Übergabe von Variablen von vornherein auszuschließen. In vielen Fällen ist das jedoch nicht möglich, weil z.B. der Absender oder der Betreff variieren können. Deshalb möchten wir Ihnen nachfolgend einige Möglichkeiten der wirkungsvollen Absicherung vorstellen:
- Überprüfen auf Umbruchzeichen
Alle Variablen, die in einem E-Mail-Header verwendet werden, müssen auf Umbruchzeichen geprüft werden. Wird ein solches entdeckt, kann das Skript bedenkenlos mit einer Fehlermeldung abgebrochen werden. Da Umbruchzeichen über ein normales INPUT-Feld von Formularen nicht eingegeben werden können, kann es sich in solchen Fällen nur um einen missbräuchlichen Spamversuch mittels eines gefälschten POST-Requests handeln!
Falls es sich beim Ihrerseits eingesetzten Kontaktformular um ein in PHP geschriebenes Skript handelt, sollten dort die Parameter an den Stellen 1, 2, 4 und 5 auf Umbruchzeichen hin überprüft werden. Dies ist z.B. mit dem folgenden Code möglich:
if ( strstr($_POST['email'], "\n") ) die ("NO SPAM HERE!"); Erklärung zu oben stehender Codezeile:
Wird in dem POST-Wert "email" ein Umbruchzeichen entdeckt, so wird das Skript mit der Fehlermeldung "NO SPAM HERE!" abgebrochen. Bitte achten Sie darauf, alle Variablen zu prüfen bzw. den Code auf Ihr Skript und Ihre Feld- bzw. Variablennamen anzupassen.
- Überprüfen der Syntax von E-Mail-Adressen
Eine weitere wichtige Sicherheitsmaßnahme ist die Überprüfung der Syntax von E-Mail-Adressen. Ohne eine solche Überprüfung können wie in oben beschriebenem Beispiel mittels Kommas mehrere E-Mail-Adressen übergeben werden. Da ein Komma in einer einzelnen E-Mail-Adresse nicht vorkommen kann bzw. darf, kann mit einer Prüfung der Syntax eine Angabe von mehreren Adressen verhindert werden.
Eine solche syntaktische Überprüfung kann beispielsweise mit sogenannten "Regular Expressions" erfolgen. Ein Code-Beispiel für PHP:
if ( ! preg_match('/^[a-z0-9_\.\-]+@[a-z0-9\.\-]+\.[a-z]{2,}$/i', $_POST['email']) ) die ("Ungültiges Mailformat"); - Die Referrer-Überprüfung
Darüber hinaus kann auch eine Referrer-Überprüfung eine sinnvolle Maßnahme zur Absicherung eines Kontaktformulars darstellen.
Der Referrer beschreibt die URL, von welcher aus das Formular bzw. Skript aufgerufen wurde und wird von nahezu allen Browsern automatisch übermittelt. Wenn Ihr Kontaktformular beispielsweise unter der Adresse "http://eine-kundendomain.de/kontakt.html" zu finden ist und ein Besucher Ihnen eine Anfrage über dieses Formular zukommen lässt, so wird exakt diese Adresse übermittelt.
Im Gegensatz zu normalen Besuchern Ihrer Seite übergeben Skripte von Spammern i.d.R. keinen Referrer, sondern einen Leerstring. Somit bietet der Referrer durchaus eine weitere wirksame Methode, Ihr Kontaktformular abzusichern.
In PHP kann der Referrer wie folgt abgefragt werden:
$referer = $_SERVER['HTTP_REFERER'];
Bitte beachten Sie bei der Anwendung der Referrer-Überprüfung, dass es hierbei vereinzelt zu Problemen kommen kann, da manche Firewalls diesen Referrer automatisch aus der Kommunikation entfernen, um ein anonymes Surfen zu ermöglichen. Zudem läßt sich die Referrerübermittlung in vielen Browsern manuell deaktivieren.
Sie sollten daher bei Anwendung der Referrer-Überprüfung einen entsprechenden Hinweistext ausgeben, der Benutzern angezeigt wird, wenn das ausgefüllte Formular aufgrund einer fehlgeschlagenen Referrer-Überprüfung nicht übermittelt werden konnte.