Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss
Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

Re: [individual] Gefaltete Headerzeilen mit LF?

0 views
Skip to first unread message

Michael Bäuerle

unread,
Aug 18, 2023, 8:08:05 AM8/18/23
to
Marcel Logen wrote:
> Thomas Barghahn in de.comm.provider.usenet:
> >
> > Herangezogen wird/wurde RFC 5322 (siehe OP), wobei /ich/ persönlich in
> > jenem RFC nichts von einem *muss* bzgl. CRLF an den "Faltstellen" bei
> > gefalteten Headern lese (Punkt 2.2.3).
>
> Da steht aber
>
> | The general rule is that wherever this specification
> | allows for folding white space (not simply WSP charac-
> | ters), a CRLF may be inserted before any WSP.
>
> Etwas anderes als CRLF kommt demnach nicht in Frage.
>
> CRLF ist ja sowieso als Zeilenende vorgeschrieben,
> insbesodere für die Faltung.
>
> <https://datatracker.ietf.org/doc/html/rfc5322#section-3.2.2>:
>
> | FWS = ([*WSP CRLF] 1*WSP) / obs-FWS
> | ; Folding white space

Davor steht noch in Kapitel 2.2:
<https://datatracker.ietf.org/doc/html/rfc5322#section-2.2>
|
| [...] A field body MUST NOT include CR and LF except
| when used in "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 specification.

Faltung mit LF statt CRLF ist demnach beim Versand nicht zulässig.

Kompliziert wird es beim Empfang. Ich arbeite gerade an einem neuen
Header-Parser für flnews, der bessere Fehlertoleranz haben, aber
trotzdem streng konform sein soll. D.h. er soll zulässige Syntax nicht
falsch interpretieren.
Dabei ist zu beachten, dass RFC 5322 vorschreibt, dass ein Parser auch
die in Kapitel 4 definierte "Obsolete Syntax" akzeptieren *muss*:
<https://datatracker.ietf.org/doc/html/rfc5322#section-4>
|
| []... Though these syntactic
| forms MUST NOT be generated according to the grammar in section 3,
| they MUST be accepted and parsed by a conformant receiver. [...]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Und dort sind ganz wilde Sachen definiert. Beispiel:
<https://datatracker.ietf.org/doc/html/rfc5322#section-4.1>
|
| [...]
| obs-NO-WS-CTL = %d1-8 / ; US-ASCII control
| %d11 / ; characters that do not
| %d12 / ; include the carriage
| %d14-31 / ; return, line feed, and
| %d127 ; white space characters
| [...]
| obs-utext = %d0 / obs-NO-WS-CTL / VCHAR
| [...]
| obs-unstruct = *((*LF *CR *(obs-utext *LF *CR)) / FWS)

Zusammen mit der Syntax eines unstrukturierten Headerfeldes ergibt sich:
<https://datatracker.ietf.org/doc/html/rfc5322#section-3.2.5>
|
| unstructured = (*([FWS] VCHAR) *WSP) / obs-unstruct

<https://datatracker.ietf.org/doc/html/rfc5322#section-3.6.8>
|
| optional-field = field-name ":" unstructured CRLF

Da dürfen einzelne CR-, LF- (und sogar NUL-) Steuerzeichen vorkommen.

In so einem optionalen Headerfeld (wie z.B. X-Face, das meines Wissens
nicht genormt ist, auch nicht für News) ist ein einzelnes LF demnach
zulässiger Inhalt, den ein konformer Parser als solchen verstehen und
ausliefern muss (und nicht im Sinne der Fehlertoleranz als kaputte
Faltung entfernen darf).

Anders sieht das beim Headerfeld "User-Agent" aus:
<https://datatracker.ietf.org/doc/html/rfc5536#section-3.2.13>
|
| user-agent = "User-Agent:" SP 1*product [CFWS] CRLF
| product = [CFWS] token [ [CFWS] "/" product-version ]
| product-version = [CFWS] token

Für <token> verweist RFC 5536 auf RFC 2045:
<https://datatracker.ietf.org/doc/html/rfc2045#section-5.1>
|
| token := 1*<any (US-ASCII) CHAR except SPACE, CTLs,
| or tspecials>

<token> darf also keine Steuerzeichen enthalten.

Gemäß RFC 5322 Kapitel 4 gilt für CFWS:
<https://datatracker.ietf.org/doc/html/rfc5322#section-3.2.2>
|
| [...]
| FWS = ([*WSP CRLF] 1*WSP) / obs-FWS
| [...]
| CFWS = (1*([FWS] comment) [FWS]) / FWS

und:
<https://datatracker.ietf.org/doc/html/rfc5322#section-4.2>
|
| obs-FWS = 1*WSP *(CRLF 1*WSP)

Ein einzelnes LF (außerhalb von <comment>) sollte hier einen
Syntaxfehler darstellen und die Fehlertoleranz dürfte die kaputte
Faltung korrigieren (wenn man das Feld gemäß RFC 5536 und nicht als
optionales Feld gemäß RFC 5322 parst).

Für deinen Testartikel:
<news:kjihim...@o15.ybtra.de> (Msg-ID: <kjihim...@o15.ybtra.de>)
zeigt flnews momentan den User-Agent wie folgt an:
|
| Programm: Gecko/20100101? Thunderbird
^
Das LF wird hier nicht als Faltung interpretiert (und entfernt).


[Xpost und Fup2 nach de.comm.software.newsreader gesetzt
Hat mehr mit dem Newsreader als mit dem Provider zu tun]

Thomas Barghahn

unread,
Aug 18, 2023, 9:42:41 AM8/18/23
to
*Michael Bäuerle* meinte:
>
> [komplette Analyse]
>
> [Xpost und Fup2 nach de.comm.software.newsreader gesetzt
> Hat mehr mit dem Newsreader als mit dem Provider zu tun]

Vielen Dank für deine ausführliche Analyse! Ich persönlich bin mir bei
solchen Dingen immer sehr unsicher, da, wie man an deinen Erklärungen
nun auch sieht, die RFCs immer wieder "übergreifend" sind.

Klar ist für mich aber nun, dass meine Beiträge RFC-konform bei
"individual" eingeliefert werden, was für mich schon einmal beruhigend
wirkt. :-)

Wahrscheinlich wird man nun auch bei "individual" keine weiteren
Maßnahmen treffen, denn man wird sicherlich ähnlich argumentieren.

Nochmals Vielen Dank!

Thomas 😷
--
== S E N D E Z E I T ===========================
  DATUM : Freitag, 18. August 2023
  UHRZEIT: 15:42:33 UHR (MESZ)
== Heute: Tag des hochgekrempelten Hosenbeins ==

Heiko Schlichting

unread,
Aug 21, 2023, 4:46:15 AM8/21/23
to
Thomas Barghahn <Th.Ba...@t-online.de> wrote:
> Wahrscheinlich wird man nun auch bei "individual" keine weiteren
> Maßnahmen treffen, denn man wird sicherlich ähnlich argumentieren.

Doch, das wird untersucht und ggf. behoben werden. Aber erst nach dem
(langen) Urlaub und auch dann nicht als erstes. Da das ja schon seit vielen
Jahren so sein wird und es keine offensichtlichen Probleme damit gibt,
erscheint mir das jetzt nicht dringend und kann auch noch ein paar
Tage oder gar Wochen warten.

Aber der Hinweis war gut und wichtig. Das war mir nicht bewußt und soll
nicht so sein/bleiben.

Danke, Heiko

Heiko Schlichting

unread,
Aug 27, 2023, 1:21:23 PM8/27/23
to
Heiko "Ingrid" Schlichting <he...@cis.fu-berlin.de> wrote:
> Thomas Barghahn <Th.Ba...@t-online.de> wrote:
>> Wahrscheinlich wird man nun auch bei "individual" keine weiteren
>> Maßnahmen treffen, denn man wird sicherlich ähnlich argumentieren.
>
> Doch, das wird untersucht und ggf. behoben werden.

Done.

Heiko

Michael Bäuerle

unread,
Aug 27, 2023, 1:34:58 PM8/27/23
to
Danke für die Reparatur.

Marcel Logen

unread,
Aug 27, 2023, 3:15:08 PM8/27/23
to
Michael Bäuerle in de.comm.software.newsreader:
Von mir natürlich auch!

Ich habe momentan leider keine Zeit, das zu testen, aber
wenn das einzelne LF im User-Agent wieder auftauchen sollte,
sähe ich das ja hier mit flnews sofort.

Marcel
--
╭───╮ ╭───────────────╮ ╭─╮ ╭──╮ ╭──╮ ╭──╮..61..╭──╮
│ │ ╰───────────╮ ╰───╯ ╰─╮ │ ╰───╯ │ ╭─╮ │ ╰──╮ ╭─╯ ╰──
──╯ ╰──╮ ╭─────╮ ╰─────╮ ╭──╯ ╰──╮ ╭───╯ │ │ │ ╰─╯ ..67..
╰──╯ ╰────────╯ ╰────────╯ ╰───────╯ ╰───╯ ..67..
0 new messages