dedlfix: hilfe! mailform von robots erfasst :-(

Beitrag lesen

echo $begrüßung;

Beispielsweise als nicht richtig. Wenn mail() nicht von selbst die Header mit einer Leerzeile abschließen würde, wäre es fehlerhaft.

Hm, wie kommt es dann zu Header-Injections?

So wie bereits gesagt. Jemand sendet in einem Feld, das letzten Endes im Header landet (also To, Subject oder ein Extra-Header-Wert), statt eines umbruchlosen Strings einen mehrzeiligen und der Script-Autor prüft das nicht, weil er es einfach nicht erwartet hat: "Ist ja nur ein einzeiliges Eingabefeld".

Du erkennst sicherlich auch, dass message (dritter Parameter) ein Extra-\n bekommt …

Das erkenne ich zwar, aber nicht warum. Was bewirkt er?

Er fügt die Leerzeile zwischen den Headern und Message ein.

echo "$verabschiedung $name";