UPDATE: Das ursprüngliche Problem ist gelöst, indem ich Aufrufe per GET ablehne. In einem neuen Post unten habe ich aber ein weiteres Problem mit SPAM beschrieben.
-----
Hallo,
ich habe eine Frage zur Sicherheit des Kontaktformulars meiner Homepage. Unten seht ihr den PHP-Teil meiner mailer.php, die bei Senden des Formulars aufgerufen wird.
Ich habe einiges aus diversen Foren und Tutorials zusammengetragen, so dass eigentlich keine mail injections möglich sein sollten.
Was mich aber irritiert: Gelegentlich kommen mails bei mir an, die außer den festen Bestandteilen von $text keinen Inhalt haben.
Ist das ein Grund zur Sorge? Ich überprüfe mit Absicht nicht die Vollständigkeit und Art der Angaben; wer statt der eMail seine Telefonnummer angeben möchte, soll das ruhig tun.
Hier nun der Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
if ($_SERVER['REQUEST_METHOD'] == 'GET') die ("Bitte das Kontaktformular benutzen! Es wurden keine Daten übermittelt.");
// Tags entfernen, @ und / umwandeln
foreach($_POST as $key=>$value) $_POST[$key]=(strip_tags($value));
foreach($_POST as $key=>$value) $_POST[$key]=(str_replace("/","SLASH",$value));
foreach($_POST as $key=>$value) $_POST[$key]=(str_replace("@","BEI",$value));
$sender = $_POST["sender"];
$sendermail = $_POST["sendermail"];
$newsletter = $_POST["newsletter"];
$betreff = "Newsletter";
// Auf Längenüberschreitungen prüfen
if (strlen($sender) > 60 || strlen($sendermail) > 60) {
die("ACHTUNG: Name und Mailadresse dürfen 60 Zeichen nicht überschreiten.");
}
// (Versteckte) Zeilenumbrüche ablehnen
$sendermail = urldecode($sendermail);
$sender = urldecode($sender);
if ((eregi("(\r|\n)", $sendermail)) || (eregi("(\r|\n)", $sender))) {
die ("ACHTUNG: Unter Name und Mailadresse dürfen keine Zeilenumbrüche eingegeben werden.");
}
$text = "$sender sendet folgende Nachricht:
" . $_POST["text"] . "
Die Adresse lautet $sendermail.
Newsletterbezug: $newsletter";
mail("abc@abc.net", $betreff, $text,
"From: www.abc.net");
?>
Gruß, Pida\n\n
<!--EDIT|Pida|1180377235-->