On 16/06/2009, at 12:16 AM, Anne van Kesteren wrote:
On Mon, 15 Jun 2009 04:36:28 +0200, Mark Nottingham <[email protected]>
wrote:
Content providers wanted the flexbility of not having to list
every
header in advance. Both so debugging headers and such would not
have
to be exposed and to reduce the payload.
Which content providers? How much extra payload do you really
expect
this to be?
I believe Google, Microsoft, Mozilla, and SitePen.
I don't know how much payload would be saved, but that was not the
only
reason.
The others being?
Not exposing debugging headers.
Seems like an odd justification, but OK.
Some prior discussion on response headers:
http://lists.w3.org/Archives/Public/public-webapi/2008Apr/thread.html#msg58
So, the crux of the motivation seems to be Ian's:
I don't think we should change this without a better reason.
There's no
reason to believe that some servers don't have information in the
headers that shouldn't be seen by third-parties, and it's the kind
of
thing that would be really easy to miss when securing a page for
third-party access.
It seems odd to me that you're willing to expose all of the data in
the
response, but almost none of the metadata (headers). Taking a quick
look
through the message header registry, a number of candidates that
would
be useful -- if you allowed them -- come up, including: [...]
Note that many of these are critical to understanding the message,
and
disallowing many others will disallow many applications.
For example, [...]
This is not a complete list; adding these headers to your whitelist
will
not resolve this issue.
If this proofs to be a big problem in practice we can let the list
be extended using a response header that lists all headers the
server is willing to share. This could be a CORS2 feature.
IMO this is a showstopper for CORS1. Do the right thing: expand the
list of headers allowed and add this functionality now.
Here's a thread on request headers:
http://lists.w3.org/Archives/Public/public-appformats/2008Feb/thread.html#msg168
Similar concerns seem to apply here. You mention theoretical attacks/
risks a lot, and people who disagree are asked to prove a negative
-- an
unrealistically high bar.
It does not follow that we then have to simply allow it.
Also note that _with_ a preflight request which will be necessary
for many requests anyway you _can_ include almost any header you
want apart from the ones that are on the XMLHttpRequest blacklist.
*grumble* OK.
http://www.w3.org/2005/06/tracker/waf/issues/22
http://lists.w3.org/Archives/Public/public-appformats/2008Jan/thread.html#msg303
Where is the sentence that the resolution of that issue refers to?
Access-Control-Policy-Path was not found to be workable solution in
the end
http://www.w3.org/2008/webapps/track/issues/12
unfortunately.
Indeed. Were other approaches to applying policy to multiple URLs
considered?
Probably "resource processing model..."
I started making changes in that direction and it did not make a
whole
lot of sense. E.g. how would you rephrase "In response to a simple
cross-origin request or actual request the server indicates
whether or
not to share the resource."?
"In response to either an actual request or a simple cross-origin
request, the resource indicates whether or not to share the
response."
although in this particular case, "... the server indicates whether
or
not to share the response" would work as well (since it's
unambiguous).
The distinction is more important when talking about scoping -- e.g.,
does a decision apply to a single response, all responses from a
resource (as identified by a URI), or all responses from a server.
I made the changes here now. I'd appreciate if you could go over it
to see it is ok.
Had a look through the current editors' draft -- looks good to me.
A few nits:
In 5.1, "In case the resource has been relocated the resource
indicates whether to share the new URL of the resource."
is wordy; try
"If the resource has been relocated, it indicates whether to share
its new URL."
In 6.2, throughout this section, there are statements like "If the
resource includes zero or more..." Instead of "resource" I think
"response" would be more appropriate, but I may be reading it out of
context.
In 7.3, "The contents of the resource..." --> "The contents of the
response..."
Cheers,
--
Mark Nottingham http://www.mnot.net/