Navigation
Technische Details
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
Verwandte Artikel:
- Fragen zur Wahl des richtigen Webhosting Tarifes
- Wie lange dauert es bis meine Webseite über Suleitec erreichbar ist ?
- Einen Providerwechsel zu Suleitec durchführen.
- Ich möchte eine Domain von einer anderen Person übernehmen. (Besitzerwechsel)
- Bei Suleitec Domains oder Verträge kündigen.
Letzte Änderung der FAQ: 2009-06-23 20:48
Autor: Thomas Andergassen
Revision: 1.0
Kommentieren nicht möglich
FAQs in dieser Kategorie
- Ich brauche Pfadangaben ! (Perl, MySQL , ImageMagick)
- Wie lautet mein Postein/Ausgang oder Mailserver ?
- Webalizer Statistik verstehen (deutsch)
- Webalizer Statistik verstehen (englisch)
- Funktionsweise des Spam Filter: Policyd-weight
- Funktionsweise des Spamfilter: Greylisting
- Update auf PHP5 ? MySQL 5 ?
- register_globals
- RewriteEngine
- Options +Includes - Oder: Wie aktiviere ich SSI
- Was ist eine .htaccess
- Wofür ist das cgi-bin Verzeichnis im FTP ?
- Bietet Suleitec Backups an ?
- Bietet Suleitec SSH oder Telnet Zugang an ?
- Was ist eine Catch All Mailadresse ?
- Ausführliche Erläuterung von .htaccess Funktionen
- Warum kann ich eine Datei nicht löschen ?
- Läuft die Software xyz bei euch ? Kann ich das installieren ?
- Welche Software kann ich per Mausklick im Account installieren lassen ?
- Account-Login, Webmail, Webftp
