Seite 1 von 3
Kontaktformular
Verfasst: 05.12.2005 10:44
von nuunuu
Hi, hab ein Kontaktformular gefunden:
Code: Alles auswählen
<?
if ($option==1)
{
mail("mailaddy@server.de","[KONTAKTFORMULAR-SCHREIBEN]",
"Name: $name\nE-Mail: $email\n\nMitteilung:\n$mitteilung",
"From: AUTOMATISCH");
echo "Ihre Mitteilung wurde erfolgreich abgesendet!";
}
else
{
?>
<form method="post">
<input type="hidden" name="option" value="1">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>Name</td>
<td><input type="text" size="15" name="name"></td>
</tr>
<tr>
<td>E-Mail</td>
<td><input type="text" size="15" name="email" value="@"></td>
</tr>
<tr>
<td>Mitteilung</td>
<td><textarea name="mitteilung" rows="5" cols="20"></textarea></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Absenden"></td>
</tr>
</table>
</form>
<?
}
?>
Warum öffnet sich beim Klick auf senden mein E-Mail programm???
Bye nuunuu
Verfasst: 05.12.2005 14:09
von Martin Truckenbrodt
Hallo,
willst Du eine Spammaschine bauen?
Ich habe das hier auf mehreren Seiten im Einsatz:
ftp://ftp.heise.de/pub/ct/listings/0522-208.zip
Gruß Martin
Verfasst: 05.12.2005 14:19
von fanrpg
ausserdem muss das:
Code: Alles auswählen
if ($option==1)
{
mail("mailaddy@server.de","[KONTAKTFORMULAR-SCHREIBEN]",
"Name: $name\nE-Mail: $email\n\nMitteilung:\n$mitteilung",
"From: AUTOMATISCH");
echo "Ihre Mitteilung wurde erfolgreich abgesendet!";
}
so aussehen:
Code: Alles auswählen
if ($_POST['option'] == 1)
{
mail("mailaddy@server.de","[KONTAKTFORMULAR-SCHREIBEN]",
"Name: $_POST[name]\nE-Mail: $_POST[email]\n\nMitteilung:\n$_POST[mitteilung]",
"From: AUTOMATISCH");
echo "Ihre Mitteilung wurde erfolgreich abgesendet!";
}
oder so
Code: Alles auswählen
if ($HTTP_POST_VARS['option'] == 1)
{
mail("mailaddy@server.de","[KONTAKTFORMULAR-SCHREIBEN]",
"Name: $HTTP_POST_VARS[name]\nE-Mail: $HTTP_POST_VARS[email]\n\nMitteilung:\n$HTTP_POST_VARS[mitteilung]",
"From: AUTOMATISCH");
echo "Ihre Mitteilung wurde erfolgreich abgesendet!";
}
Desweiteren da das keine HTML E-Mail werden soll (sieht nach email() so aus:
Code: Alles auswählen
if ($_POST['option'] == 1)
{
mail("mailaddy@server.de","[KONTAKTFORMULAR-SCHREIBEN]",
"Name: $_POST[name]\nE-Mail: $_POST[email]\n\nMitteilung:\n".strip_tags($_POST['mitteilung']),
"From: AUTOMATISCH");
echo "Ihre Mitteilung wurde erfolgreich abgesendet!";
}
Verfasst: 05.12.2005 20:24
von Dennis63
So ein Script reicht aber noch nicht aus. Damit wäre "Emaill Injection" möglich. Es gibt hierfüt Bots, die das Internet (ähnlich wie Suchmaschinen) nach solchen schlechten Scripts druchsuchen. Sie senden so präparierte Texte, daß PHP den Text als "Erweiterter Header" einterpretiert und somit die Email umleitet. Zusätzlich wird eine MIME-Kodierung angehängt, die den Text überschreibt und eine Spam-Email anhängt.
Einmal gefunden, werden dann einige 1000 Emails über Deinen Server verschickt.
Grüße
Dennis
Verfasst: 05.12.2005 20:34
von S2B
@Dennis: Und wie kann man das am wirkungsvollsten verhindern?
Verfasst: 05.12.2005 20:57
von Martin Truckenbrodt
Hallo,
nimm einfach das Skript aus dem Link weiter oben.
Gruß Martin
Verfasst: 05.12.2005 20:58
von 123teddy321
du hast in deinem formtag keine action angegeben. also mache aus:
in
dann müsste es gehn!
Verfasst: 05.12.2005 21:05
von S2B
Martin Truckenbrodt hat geschrieben:nimm einfach das Skript aus dem Link weiter oben.

Das hab ich übersehen.

Verfasst: 06.12.2005 19:05
von Dennis63
S2B hat geschrieben:@Dennis: Und wie kann man das am wirkungsvollsten verhindern?
Indem Du die eingehenden Variablen auf illegale Inhalte hin überprüfst.
Hier braucht man aber nicht das Rad neu erfinden, Google liefert viele fertige Scripte, die sowas machen. Da kann man sich das dann "abgucken".
Noch besser wäre es, den Inhalt gleich MIME-Kodieren, dann ist (eigentlich) gar nichts mehr möglich.
Grüße
Dennis
Verfasst: 06.12.2005 19:31
von nuunuu
danke an alle, die geantwrotet haben. Ich gebe zu, es war spät abends, als ich das Skript gefunden hab. auserdem hab ich von php net wirklich ahnung... bin zur Zeit dabei XHTML, und PHP in der Schule zu lernen... hoffe mal, das das jetzt klappt.
Bye nuunuu