Re: Requirements for a filtering header
Philip Miller <[email protected]> Tue, 13 Apr 2004 23:56:34 -0400
| Newsgroups | gmane.ietf.asrg.filtering |
|---|---|
| Message-ID | <[email protected]> |
Philip Miller wrote: >> There has been discussion back and forth on different aspects of this >> problem. At this time, I want to get a feel from the members as to: >> 1. If there is a rough consensus that a standard filtering header would >> be useful. > > I think we have pretty clearly agreed that such a header would be useful. Here are the benefits, which can eventually end up in our final spec abstract and/or introduction: 1. Save filter authors the trouble of reinventing the wheel when designing the mechanism to report results to the user a) No need to invent new syntax, unused header name, etc. b) Pre-existing library to generate/parse the specified syntax [1] 2. Give MUA authors a well-defined, unambiguous standard header to interpret 3. Allow better interaction among filters 4. Facilitate future efforts at MUA -> filter communication All of the above eventually resulting in improved end-user experience with filters that can now more easily 'just work'. >> 2. If there is a rough consensus as to what issues need to be solved for >> such header to be useful. > > Major existing issue: > Should the header appear only once, representing the results of the > last-acting (and therefore most trusted?) filter, or should it appear once > for each analysis action? I believe that such a header should appear in a message as many times as that message is processed by any relevant piece of software that passes the message on rather than rejecting it outright. This allows the user (and the software acting on the user's behalf) access to as much data about a message as possible. As I write this, I've thought of another use-case in which allowing multiple copies is good. What if we want multiple filters to process a given message on a given host at the same time? The pass-through model, currently used by Postfix, only allows a single piece of software to handle the mail at a time. Instead of this, how about running each of these tasks in parallel, with the message on the scanner's standard input, each of them writing their own tag to standard output, all of which the controlling MTA process adds to the message. >> If these are satisfied, than I would like to ask for some folks to >> volunteer to write up a requirements draft from which we can continue the >> discussion. > > Please try not to be so document focused, at least until the point where > we're actually writing a specification. If it's that important, I can > throw this stuff in the wiki. > > At any rate, once we have the above major issue resolved, I see the need > for the following things to be determined: > 1. Syntax of this header I would prefer strict key-value pairs, but if we go with some fixed fields, I'm fine with that too, just so long as there is room for specified extension with a low barrier to entry. > 2. Fields > a) mandatory I would support making a number of fields mandatory in all instances of the header, including: 1. Host on which processing occurs 2. Timestamp of processing 3. Name of processing software 4. Version of processing software > b) optional, but specified in the base spec My list of these would be: 1. Virus - yes/no 2. Virus name 3. Virus forges headers (more specific? necessary at all?) 4. General Classification - i.e. what POPFile is designed to provide 5. Confidence in General Classification - statistical certainty of result Note that a set of spam-specific fields is quite superfluous. The value of the 'General Classification' field can be 'spam' or 'junk' or whatever, and the user can set all such things to go in one folder, be deleted, get a challenge, etc. > c) IANA registration of new fields I think this is absolutely crucial to success, and I see no reason not to require full syntax specification of the values such fields will contain. > 3. Name of this header Right now, I'm leaning towards the most-generic 'Processed', as a more active sounding parallel to 'Received'. Philip Miller [1] When we get a spec ready for publication, we should probably have a few sample implementations in different languages. Both generators and parsers.