Subject: Syntax validation of articles by injecting agents

From: Julien ÉLIE <[email-masked]>
Date: Thu, 31 Dec 2009 17:31:46 +0100

Hi,

RFC 5537 mentions that an injecting agent MUST reject any proto-article
that is not syntactically valid as defined by RFC 5536.

What is the best way to do that then?
Is it safe to implement that requirement?  RFC 5536 is said to
"reflect current practice", but if we enforce that MUST, I believe
it will break lots of news readers.

NN for instance does not generate MIME-Version: header fields
although "user agents MUST meet the definition of MIME conformance"
("a mail user agent that is MIME-conformant MUST always generate
a "MIME-Version: 1.0" header field in any message it creates").
I believe this sentence applies to news user agents too, otherwise
a reference to MIME is useless.

And what if a news reader generates an incorrect User-Agent: header
field?  or if it always adds a tail-entry which is not a path-nodot
in Path:?  All its posts will be rejected by a RFC-compliant injecting
agent...
It it the intention?

I quite understand that it would help to have better compliant
articles.  For instance, rejecting articles with "all" in their
distribution list.

But in some cases, people would need to upgrade their news
readers...  (and maybe change their news readers if it is
no longer maintained)
Or news admins will not be willing to upgrade to a news server
that is RFC-compliant.  (Unless syntax checks can be deactivated
but then, news admins will deactivate them, and the duty of
injecting agents will be useless -- "it bears much of the burden
of diagnosing broken posting agents or communicating policy
violations to posters".)

How can we handle that MUST without hurt?

-- 
Julien ÉLIE

« En vérité, le chemin importe peu, la volonté d'arriver
  suffit à tout. »

---

From: Russ Allbery <[email-masked]>
Date: Thu, 31 Dec 2009 11:43:09 -0800

> that is not syntactically valid as defined by RFC 5536.

In retrospect, I suspect that should either have been a SHOULD or it
should have singled out the netnews-specific restrictions.  I don't think
anyone pointed out at the time that it would mean rejecting all non-MIME
messages, and I suspect we would have changed it if we'd realized that as
fairly impractical.

The point was more to reject messages with syntactically invalid
Newsgroups headers and whatnot.

> in Path:?  All its posts will be rejected by a RFC-compliant injecting

I wonder how many user agents generate invalid Path headers.  Hm.

I have a hard time justifying rejecting articles on the basis of syntactic
problems in purely informational headers like User-Agent.

> articles.  For instance, rejecting articles with "all" in their

That, at least, the user probably has some control over.

> How can we handle that MUST without hurt?

I'm guessing that server implementations will need to be selective about
what headers that it's applied to, unfortunately.  It would probably be
nice to have a picky mode that fully enforces the syntax, though, if for
no other reason than to serve as a testbed for posting agents.

-- 
Russ Allbery ([email-masked])             <http://www.eyrie.org/~eagle/>