On Mon 16/Mar/2015 20:22:31 +0100 Murray S. Kucherawy wrote: 
> On Mon, Mar 16, 2015 at 3:51 AM, Alessandro Vesely <[email protected]> wrote:
> 
>>> Section 2.2 of RFC3986 lists semi-colon as a reserved character that has to
>>> be percent-encoded in these URLs.  We don't need to repeat it here, I think.
>>
>> If the spec is going to be read by ignorants like me, it's better to repeat
>> than to omit.  RFC3986 has a very wide scope, and uses phrases like "may
>> (or may not) be defined as delimiters".  It says:
>>
>>    If data for a URI component would conflict with a reserved
>>    character's purpose as a delimiter, then the conflicting data must be
>>    percent-encoded before the URI is formed.
> 
> Right, which is why things like semi-colon don't need to be
> percent-encoded; they're already special characters in the context of a URL.

So are comma and exclamation.  What puzzles me is that DMARC spec treats them
differently while RFC3896 does not.  Comma and semicolon seem to behave the
same; e.g.:

http://www.tana.it/comma,comma.txt
http://www.tana.it/comma%2ccomma.txt
http://www.tana.it/comma%25%32%63comma.txt
http://www.tana.it/semicolon;semicolon.txt
http://www.tana.it/semicolon%3bsemicolon.txt
http://www.tana.it/semicolon%25%33%62semicolon.txt

>> Commma and exclamation (which are sub-delims like semicolon) are apparently
>> used in dmarc-uri's rule.  The preceding DMARC section says:
>>
>>    DMARC records follow the extensible "tag-value" syntax for DNS-based
>>    key records defined in DKIM [DKIM].
>>
>> However, DKIM production rules don't seem to be formally imported.  If
>> they are
>> imported, semicolon exclusion is implied by the definition:
>>
>>    VALCHAR   =  %x21-3A / %x3C-7E
>>                      ; EXCLAMATION to TILDE except SEMICOLON
> 
> They aren't formally imported, and I'm not sure that's necessary here.  The
> ABNF we have should be comprehensive over DMARC tag-value sets.  The prose
> you cited is merely meant to convey that they follow the same style.

Right.  The question is if implementations can reuse DKIM parsers.

>> How about the other two questions?  I didn't survey but a few DMARC
>> records, but RFC6068 exemplifies the following:
>>
>>    Also note that it is syntactically valid to specify both <to> and an
>>    <hfname> whose value is "to".  That is,
>>
>>    <mailto:[email protected],[email protected]>
>>
>>    is equivalent to
>>
>>    <mailto:[email protected],[email protected]>
>>
>>    is equivalent to
>>
>>    <mailto:[email protected][email protected]>
>>
>>    However, the latter form is NOT RECOMMENDED because different user
>>    agents handle this case differently.  In particular, some existing
>>    clients ignore "to" <hfvalue>s.
>>
>> Yahoo instead uses 1st level syntax:
>>
>>    rua=mailto:[email protected], mailto:[email protected];
> 
> Your question is "Are they equivalent?"  I believe they are.  Although it
> might be ideal to have a specification so tight that there's exactly one
> way to do something, in the end I don't think it's harmful to have two ways
> to say the same thing.  It's more of a concern if there's to ways to
> interpret a single thing; that's when we arguably have something to fix.

I tried the "NOT RECOMMENDED" syntax quoted above.  Dmarcian[1] doesn't raise a
brow, and RFC3896-compliant uriparser[2] ingests it smoothly.  However,
although I sent a test message to a gmail account, I received no report.  I
guess Google's implementation doesn't deploy a proper URI parser, but just
looks for "mailto:"; followed by a plain path consisting of a single[3]
addr-spec (as defined in RFC6068, i.e. w/o comments) with no query nor fragment
--that's what I'd do myself, but I find no arguments in the spec that help
proving that that record is bad.

[1] https://dmarcian.com/dmarc-inspector/torreinpietra.it
[2] http://uriparser.sourceforge.net/doc/html/
[3] haven't yet tried two %2c-separated addr-specs.

> The goal in allowing a comma-separated list of URLs is that you might
> conceivably want to put an http and a mailto URL in there, in the "try A
> first, then try B" sense.  We need to allow for that possibility.  We also
> need to account for the possibility of a comma that is inside of a URL;
> those are the ones that need to be encoded.  Outside of a URL, they're
> delimiters.

The spec says a report "is normally sent to each".  How can a publisher express
that two URIs are meant to be either-or alternatives to each other?

> Unless I'm missing something, the ABNF for DMARC allows all three of the
> cited examples, as well as Yahoo's use, and all four of them mean the same
> thing.  That doesn't strike me as a bug.

Recall that it took years and an RFC revision to have mailto: URIs treated with
reasonable uniformity by web browsers.  Here we are specifying an entirely new
kind of client, which avails of its specific URI-transmission protocol.  IMHO,
if we want %2c to be interpreted as addr-spec separator or otherwise, we ought
to spell it loud and clear.

It may also be worth to require domain in addr-spec to be A-label, as that
simplifies verification and improves dn_ compression.  Such idea apparently
conflicts with the example at the end of Section 6.3 of RFC6068, where the IDN
is percent-encoded instead.

Ale

_______________________________________________
dmarc mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/dmarc

Reply via email to