Email injection - Spam über Kontaktformulare verhindern.


Spam ist sicherlich eines der schlimmsten Probleme dem Ottoemailverbraucher gegenübersteht. Umfangreiche Spamfilter beseitigen leider nur die Symptome, aber es gilt die Ursachen zu eliminieren. Und die sind immer öfter Kontaktformulare auf harmlosen Webseiten.

Zu einer guten Website gehört natürlich auch die Möglichkeit den Betreiber zu kontaktieren. Dies kann über die Post erfolgen, geht aber meist viel schneller duch die Angabe einer Emailadresse oder eines Kontaktformulars.
Die Angabe einer Emailadresse ist natürlich schon mal ein gefundenes Fressen für Spammer.
Kontaktformulare sind da schon praktischer. Sie verbergen die eigene Adresse und bieten zudem noch meist den psychologischen Vorteil dass der Webseitenbesucher schon mal weiß er alles schreiben muß, und sich nicht selbst einen ganzen Text mit Form und Struktur ausdenken muss.

Dieses Formular wir dann meist über die recht nützliche, aber auch gefährliche PHP- Funktion mail() abgeschickt.

Das Kontaktformular der Firma xyz schaut folgendermaßen aus:
Code



Die Funktion mail() ist folgendermaßen aufgebaut:

 <?php
if (!isset($_POST["senden"])){  // Formular wurde noch nicht abgeschickt, zeige Formular
? >
<form method="POST" action="<?=$_SERVER['PHP_SELF'];?>">
Von: <input type="text" name="Absender">
Betreff : <input type="text" name="Betreff">
Nachricht : 
<textarea name="Nachricht" rows="50" cols="30" lines="20"></textarea>
<input type="submit" name="senden" value="Abschicken">
</form>
<? 
}else{
$from=$_POST['Absender'];
if (mail("info@xyz.de",$_POST['Betreff'],$_POST['Nachricht'],"From: $from")){    // Nachricht senden 
echo "Danke für Ihre Nachricht, wir werden sie gleich bearbeiten"; // zeige Erfolgsnachricht falls alles geklappt hat.
}else{
echo "Leider lief was falsch. Ihre Nachricht konnte nicht abgeschickt werden"; // zeige Fehlermeldung falls was schief lief
}
}
?>

 Im Formular der Firma xyz wurden die Headers dazu verwendet um das Formular mit der Email-Adresse des Besuchers abzuschicken.

Die Kommunikation mit dem Mailserver sieht nun folgendermaßen aus

To: info@xyz.de
Subject: Hallo
From: sender@example.xxx
Hallo 
Meine Nachricht
Ciao

 

Wenn nun aber ein böser Spammer dieses Formular verschickt und als seine Adresse info@xyz.de Bcc: info@adresse1.xxx, info@adresse2.xxx, info@adresse3.xxx angibt so wird aus der Kommunikation:

To: info@xyz.de
Subject: Hallo
From: info@xzy.de
Bcc: info@adresse1.xxx, info@adresse2.xxx, info@adresse3.xxx
Hallo 
Ich sende gerade über das Formular der 
Firma xyz Spam an info@adresse1 und
an info@adresse2 und an info@adresse3
Ciao



Das ist nun ein ziemliches Problem für die Firma xyz. erstens steigt ihr Traffic auf dem Server, 2. bekommt sie sicherlich Beschwerden von erbosten Spamempfängern und 3., wenn es ganz schlimm kommt, landet ihre Adresse in öffentlichen Blacklisten und wird von allen Mailservern, die diese benutzen, abgelehnt.

Deshalb ist es wichtig Kontaktformulare abzusichern.

Unser verbessertes Skript fügt in Zeile 13 folgendes ein:

$from=$_POST['Absender'];
if (strpos($from,"
") || strpos($from,"
")) die("No spamming please");

 



Nun stirbt das Skript mir der Meldung: "No spamming please", falls in der Mailadresse ein Zeichen für eine neue Zeile oder ein einfaches Anführungszeichen vorkommt. Nicht gerade schön, aber wirkungsvoll.

Linktipps vom Suleitec Support Team:

Versendet Ihre Webseite heimlich Spam ?

 

 

Tags: Formmailer, Kontaktformular, Spam
Letzte Änderung:
2009-06-23 20:48
Verfasser:
Thomas Andergassen
Revision:
1.0
Durchschnittliche Bewertung: 2.33 (3 Abstimmungen)

Kommentieren nicht möglich

Chuck Norris has counted to infinity. Twice.

FAQs in dieser Kategorie

Tags

.de auth code .de auth-code .de Domain .htaccess .htaccess Funktionen .tel .Tel Domain a- records Ablehnung Account einrichten Accountlogin addhandler Admin-C Anleitung Auth Code auth-info backup Besitzerwechsel Bestellablauf Bildergallerie Catch All cgi-bin chmod datei löschen dateirechte Dateischutz datenbank backup datensicherung Denic Denic Mitglied Domain Domain anlegen Domain Robot Domain Umzug Domain-Bestellsystem Domain-Recht Domain-Streit Domains bestellen Domainumzug E-Mail Template E-Mail Template Schnittstelle erreichbar Formmailer Formular Formulare Free HTML Editor FTP Clients FTP Programm FTP Programme FTP Software FTP Zugangsdaten Gallerie Gallery2 Google Google Suchmaschine Greylisting Hauptdomain htaccess HTML Editor Phase 5 HTML Editoren Imap index Inhaberwechsel Inklusivdomain Inklusivdomains installation Internet Telefonbuch Keywords kk ack KK Antrag KK Formular kk nack kompatibel Kontaktformular Kündigen Kündigung Linkdesign Logindaten Loslegen Mail Adresse Metatags mod_rewrite mx MySQL 4 MySQL 5 Nack Nameserver Neues KK Verfahren ns Optimierung Ownerchange Passwort Schutz Passwort vergessen permanent redirekt Pfadangaben php php user PHP4 PHP5 php_flag Policyd-weight POP3 Postausgangs Server Posteingangs Server provider wechsel Providerwechsel Redirect permanent register_globals Reseller RewriteEngine Robots Schlagwörter Schnitstelle Schriftstück scripte Server Side Includes shops SMTP software software installation software tool Spam Spamfilter Spamschutz SSH SSH Zugang ssi Startdatei festlegen Status Codes SubDomain Suchmaschine Suleitec Support Team Tarif Tarif Entscheidung Tarifwahl Transfair UDRP-Verfahren Umleitung Update Verzeichniss Schutz Verzeichnisschutz Vorlage Webalizer Statistik Webhosting Tarif Webinterface webseite webseite einrichten Webseite umziehen weitere Domains Whois Eintrag wordpress wordpress einrichten wordpress installieren wwwrun Zusatzdomain Zusatzdomains

Wichtige FAQs