On Tue, 19 Jan 2010 08:01:12 +0100, Thomas Roessler <t...@w3.org> wrote:
With apologies for the belated Last Call comment -- the XMLHttpRequest specification
  http://www.w3.org/TR/XMLHttpRequest/

... doesn't have meaningful security considerations.

I actually removed that section altogether in the editors draft.


Section 3 should at the very least spell out:

- Somewhat detailed considerations around CONNECT, TRACE, and TRACK (flagged in the text of the specification, but not called out in the security section; 4.6.1).

What is the reason for duplicating this information?


- Considerations around DNS rebinding.

Why would these be specific to XMLHttpRequest?


- Some explanation for the "security reasons" that are mentioned in section 4.6.2 (setRequestHeader).

Maybe removing "security reasons" would be better? Providing rationale for each part of the specification would make it very big.


- The rationale for the handling of HTTP redirects in section 4.6.4.

I agree that this should be clarified, though I do not see why it should be mentioned in a separate section as well.


- The fact that this specification normatively defines the same-origin policy as it applies to network access within browsers (section 4.6.1; though that mostly refers to HTML5 these days)

It does not define the policy. It just uses it.


Related to this, what is the rationale for making the following (explicitly security-relevant) conformance clauses SHOULD, not MUST?

** 4.6.1

If method is a case-sensitive match for CONNECT, TRACE, or TRACK the user agent should raise a SECURITY_ERR exception and terminate these steps.

If the origin of url is not same origin with the XMLHttpRequest origin the user agent should raise a SECURITY_ERR exception and terminate these steps.

** 4.6.2

For security reasons, these steps should be terminated if header is an ASCII case-insensitive match for one of the following headers:
...

Early on we agreed that all security-relevant conformance clauses should be SHOULD and not MUST so that implementors could ignore them in specific contexts. E.g. extensions. I would personally be fine with making these MUST.


--
Anne van Kesteren
http://annevankesteren.nl/

Reply via email to