Vinzenz Mai: /Email: Schutz vor Headerinjektion

Beitrag lesen

Hallo

BTW: Die potenziell "gefährliche" Benutzerangabe von Absendername und -adresse ist doch im Normalfall ein Name und eine Emailadresse. Beides enthält (meines Wissens nach) nie einen Doppelpunkt.

Du irrst. Siehe RFC2822, ich zitiere:

<zitat>
   2.2. Header Fields

Header fields are lines composed of a field name, followed by a colon
   (":"), followed by a field body, and terminated by CRLF.  A field
   name MUST be composed of printable US-ASCII characters (i.e.,
   characters that have values between 33 and 126, inclusive), except
   colon.  A field body may be composed of any US-ASCII characters,
   except for CR and LF.  However, a field body may contain CRLF when
   used in header "folding" and  "unfolding" as described in section
   2.2.3.  All field bodies MUST conform to the syntax described in
   sections 3 and 4 of this standard.
</zitat>

Während der Doppelpunkt im Headerfeldnamen nicht vorkommen darf, ist der Doppelpunkt im Body erlaubt.

Bitte beachte, dass der local-part einer E-Mail-Adresse ein quoted-string sein kann und daher auch den Doppelpunkt enthalten kann, siehe diesen Archivbeitrag von Cheatah und Validierung von E-Mail-Adressen im Selfforumssieb.

Dieser wiederum ist aber in jeder Header-Angabe erforderlich. Wäre es demnach nicht eine Möglichkeit, neben den Zeilenumbrüchen, auch nach dem Vorhandensein eines solchen zu suchen, und dann die Eingabe nicht zu akzeptieren/verarbeiten?

Nein. Du willst also viele zulässige E-Mail-Adressen und Headerinhalte ausschließen. Das ist keine gute Idee.

Freundliche Grüße

Vinzenz