rob: Mailscript schützen gegen Hack-Attacken???

Beitrag lesen

Hi!

Das Formular funktioniert, nur das mit str_replace nicht

Sicher?

$nachricht=str_replace("\r","\n",$nachricht);

Deine Funktion ersetzt \r durch \n.
Bei den Zeilenumbrüchen handelt es sich vielleicht um \n (Unix-Style).
In diesem Fall wäre gar nicht zu ersetzen.
Handelt es sich bei den Zeilenumbrüchen um \r\n (Windows-Style), wird aus \r\n dann \n\n gemacht.
Das hat dann doppelte Umbrüche zur Folge.
Nur bei den alten Mac-Zeilenumbrüchen würde deine Funktion so arbeiten, wie sie sollte...

$nameeingabe=preg_replace("\/.$?<>","",$nameeingabe);
$nachricht=preg_replace("\/.$?<>","",$nachricht);

Du mußt in jedem Fall Zeilenumbrüche aus den Eingaben rausfiltern.
Besonders wichtig ist das bei $nameeingabe.
Denn mit Zeilenumbrüchen werden Mailheader voneinander abgetrennt.
Wenn du dein Script sichern willst, dann darf es nicht möglich sein, daß man der Mailfunktion ungewollte Mailheader andrehen kann.
Damit könnte man dann dein Mailscript ein eine Spamschleuder verwandeln.
Mehr dazu in der Wikipedia oder im Forumsarchiv.

Ziemlich gefährlich sieht es auch aus, wie du deinen Mailtext übergibst.
Es wäre viel sinnvoller, wenn du den Inhalt erst einmal ein einer Variablen speichern würdest und diese dann an die mail-Funktion übergibst.
Deine Konstruktion sieht ziemlich gewagt aus...
Was wäre denn jetzt, wenn in einer deiner Variablen in deinem Mailtext (nicht escapedte) Double-Quotes auftauchen würden?

Schöner Gruß,
rob