Robert Bienert: /Email: Schutz vor Headerinjektion (2. Teil)

Beitrag lesen

Hallo Forum!

Vor kurzem hatte ich gefragt, ob eine simple PHP-Funktion zum Versenden von Emails sicher sei. Ich bin gerade noch einmal an dem Problem dran und habe so eben eine ganz praktische Funktion aus der mbstring-Bibliothek gefunden: mb_encode_mimeheader. Nach meinen Test werden damit nicht nur die Header Encoding-gerecht codiert, sondern gleich auch noch Header-Injektionen abgefangen. Beispiel:

$mail = "\"Robert Bienert\" <root@localhost>\r\nBCC: Spam@receiver.com";  
echo mb_encode_mimeheader($mail, mb_detect_encoding($mail), 'Q'), "\n";

Ausgabe:

"Robert Bienert" =?US-ASCII?Q?=3Croot=40localhost=3E=0D=0ABCC=3A=20Spam?=
 =?US-ASCII?Q?=40receiver=2Ecom?=

Meine Frage hier erst einmal: Reicht das?

Und für Emailadressen der Form "Absender" <email@adresse.tld>´´ müsste ich dann wohl Absender´´ und die Emailadresse getrennt codieren und dann zusammensetzen, oder? So, wie es aussieht, müssen im Namen noch " escaped werden.

Viele Grüße,
Robert