>> Strict-Transport-Security = "Strict-Transport-Security" ":"
>> directive *( ";" [ directive ] )
>>
>> STS directives:
>>
>> directive = max-age | includeSubDomains | STS-d-ext
>>
>> max-age = "max-age" "=" delta-seconds
>
> What happens with
>
>    max-age="1"
>
> ?
>
> Do you expect all recipients to reject this? Depending on the parsing
> API they use they might not even know that the value was quoted on the wire.

Offhand, I'm not super sure, but after thinking about it while researching/writing the below, I'm thinking "yes", max-age="1" is invalid according to the ABNF and we should do whatever we do in error cases (which is a separate open question). But implementors' parsing API and its problems are out-of-scope for a spec such as this.


This obviously isn't the first HTTP response header field with such a syntax and thus these potential issues (this one with a delta-seconds value, and the issue you note below wrt "includeSubDomains"), yes?

In doing a quick grep on RFCs for delta-seconds, I note that some of the specs using it (I didn't look at them all) appear to not directly address the case above.

Except for RFC6265, which in the algorithm for parsing "Max-Age=", it algorithmically provides for ignoring a value that doesn't match the effective value ABNF of..

  ["-"]*DIGIT

..which would catch the max-age="1" case, but doesn't seem to explicitly 
address..

  max-age=

But in any case, perhaps (additional) browser implementor folk could chime in here -- do we really need to address such detail-level issues (both of the examples above and below) in the syntax/grammar we specify in specs such as these? Or is the new ABNF proposed in the original message in this thread sufficient?


> > includeSubDomains = "includeSubDomains"
>
> There's a tiny risk that some implementations will handle value-less
> parameters the same way as parameters with empty values, such as
>
>    includeSubDomains=
>
> or
>
>    includeSubDomains=""
>
> but maybe I'm over-engineering here.

Yes, I'm wondering if this might be over-engineering -- I note that in
RFC 6266 you didn't distinguish/address this sort of case for "inline" or "attachment" -- are you feeling now that you should have, and thus we ought to do so going forward?


> Also, identifiers "max-age" and "includeSubDomains" are
> case-insensitive, right? This follows from the ABNF,

yes, and yes.

> but might be worth
> saying again in prose; in particular because it also needs to be the
> case for all future extensions.

Agreed. I see how you did it in RFC 6266 and will endeavor to do similarly.

thanks again,

=JeffH


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

Reply via email to