echo $begrüßung;
Ich habe das Problem, dass ich von einem Formular Spam gesendet bekomme. Der Betreff der Mail sieht wie der Betreff, was mit den Angaben meines Formulars verschickt wird aber die Mail ist ein Spam.
Wie kann ich mein Formular sicher machen? Was muss dabei sein?
Zu Verhinden wäre, dass jemand beliebige Empfänger, Absender, Betreff, Mail-Header und den Nachrichtentext einfügen kann. Es ist aber nicht in allen Anwendungsfällen sinnvoll, alle genannten Elemente unveränderbar zu gestalten. Wichtig für einen Spamversender ist, dass er die Empfänger selbst festlegen kann. Oft wird dafür ausgenutzt, dass das Script bei Parametern, die im Mail-Header landen, nicht genügend Sorgfalt beim Prüfen der übergebenen Werte walten lässt. Zu den Mail-Header-Daten gehört alles, was nicht Nachrichtentext ist, z.B: Absender (From), Betreff und Empfänger. Header-Zeilen sind jeweils durch einen Zeilenumbruch voneinander getrennt. Gelingt es nun jemandem, einen Zeilenumbruch in einen dieser Header-Werte einzufügen kann er beliebige weitere Headerzeilen mitgeben. Ein Script, das dagegen immun ist, lässt keine Eingabewerte zu, die einen Zeilenumbruch enthalten. Besonders, wenn nur ein einzeiliges Eingabefeld vorgesehen ist, sollte man beim Auftauchen von Zeilenumbrüchen skeptisch bis ablehnend reagieren.
Ich habe gehört, dass etwas wie htmlentities() sollte schon vermeiden, dass Skripte mittels meines Formulars zum Laufen gebracht werden. Stimmt das?
HTML-Entities haben im Mail-Umfeld nichts verloren. [*]
echo "$verabschiedung $name";
[*] Eine Mail mit angehängtem HTML-Dokument ist eine andere Baustelle.