Hi there,

here's my feedback from the HTTP/editorial point of view:

Abstract

   To improve the protection of web applications against Clickjacking
   this standard defines an http response header that declares a policy

s/standard/specification/
s/http response header/HTTP response header field/

   communicated from a host to the client browser on whether the browser
   must not display the transmitted content in frames of other web
   pages.  This drafts serves to document the existing use and

drafts?

   In 2009 and 2010 many browser vendors ([Microsoft-X-Frame-Options],
   [CLICK-DEFENSE-BLOG], [Mozilla-X-Frame-Options]) introduced the use
   of a non-standard http header RFC 2616 [RFC2616] "X-Frame-Options" to

s/http header RFC 2616 [RFC2616]/HTTP [RFC2616] header field/

   protect against Clickjacking [Clickjacking].  This draft is to
   document the current use of X-Frame-Options header and shall in the
   future be replaced by the Frame-Options [FRAME-OPTIONS] standard.

What's supposed to be replaced is the header field, not the spec, right?

2. X-Frame-Options Header


   The X-Frame-Options HTTP response header indicates a policy whether a

s/header/header field/ throughout.

   browser MUST NOT allow to render a page in a <frame> or <iframe> .

whitespace...

2.1. Syntax


   The header field name is:
   X-Frame-Options

   There are three different values for the header field.  These values
   are exclusive, that is NOT more than one of the three values MUST be
   set.

maybe "exactly one"?

   DENY
         A browser receiving content with this header MUST NOT display
         this content in any frame.

   SAMEORIGIN
         A browser receiving content with this header MUST NOT display
         this content in any frame from a page of different origin than
         the content itself.

Reference ORIGIN spec?

   ALLOW-FROM  (followed by a URI [RFC3986] of a trusted origin)
         A browser receiving content with this header MUST NOT display
         this content in a frame from any page with a top-level browsing
         contex of different origin than the specified origin.  While
         this can expose the page to risks by the trusted origin, in
         some cases it may be necessary to allow the framing by content
         from other domains.
         For example: X-FRAME-OPTIONS: ALLOW-FROM:
         https://www.domain.com/

The example needs reformatting.

   The ALLOW-FROM URI MUST be valid.
   Any data beyond the domain address (i.e. any data after the "/"
   separator) is to be ignored.  And the algorithm to compare origins

authority component?

   from [RFC6454] SHOULD be used to verify a referring page is of the
   same origin as the content or that the referring page's origin is
   identical with the ALLOW-FROM URI.

   Wildcards or lists to declare multiple domains in one ALLOW-FROM
   statement are not permitted.

   Please note that in conflict with [RFC6454], current implementations
   do not consider the port as a defining component of the origin.

2.2. Backus-Naur Form (BNF)


   The RFC 822 [RFC0822] EBNF of the X-Frame-Options header is:

         X-Frame-Options = "Frame-Options" ":" "DENY"/ "SAMEORIGIN" /
                                 ("ALLOW-FROM" ":" URI)

That should reference HTTPbis P1, and just define the field *value, such as:

X-Frame-Options = "DENY"
                / "SAMEORIGIN"
                / ( "ALLOW-FROM" OWS ":" OWS URI )
OWS = <HTTPbis P1 ref>
URI = <RFC3986 ref>

Note that this makes the keywords case-insensitive; if this is intended it might make sense to call it out. Otherwise, the ABNF needs to be fixed.

6.1. Normative References


   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

I'm pretty sure you need normative references for HTTP, ABNF and URI.

> ...

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

Reply via email to