On Jun 19, 2008, at 1:48 PM, Jonas Sicking wrote:

Maciej Stachowiak wrote:

After reviewing your comments, I am much more inclined to favor Microsoft's proposal on this: rename the relevant headers. I think you argued that this "doesn't scale", but I think only two headers have to be renamed, "Cookie" and "Authorization". Note that other authentication-related headers, if any, do not need to be renamed, because without the "Authorization" header being present, no other authentication processing will take place. If the headers have different names, it's very hard to reveal private data accidentally. No site-wide blanket addition with headers will cause it, you have to go out of your way to process an extra header and treat it the same as "Cookie". It would allow allow servers to choose whether to offer personalized or public data and change their mind at any time, without having to change clients of the data. It would also work for inclusion of cross-site data via mechanisms that don't have a convenient way to add an out of band flag. The only downside I can think of to this approach is that it may break load balancers that look at cookies, unless they are changed to also consider the new header ("Cross-Site-Cookie"?).

Using different header names would certainly address the concern I have regarding reducing the risk that private data is inadvertently leaked.

However I think the downsides are pretty big. The load balancer issue you bring up is just one example. Another is that I think caching proxies today avoid caching data that is requested using Authentication headers. Probably the same is true for the cookie header in some configurations.

I think going against the HTTP spec carries big unknown risks. I'm sure others with more HTTP experience than me can chime in here better.

I don't see how this would go against HTTP. It's perfectly valid HTTP to not send "Cookie" or "Authorization" headers, and also valid to send whatever custom headers you want if agreed upon with the server.

The cost and risk of adding an extra boolean to XMLHttpRequest seems much lower.

The cost of tying server-side changes to client-side changes for a cross-site communication technology seems like a very high cost to me. I don't buy the argument that it's normal to change when you change what data you are reading - the data being personalized (or not) is a different kind of change from changing the type of data you read. To compare to the user-level example, GMail and GCal are different URLs, but nytimes.com is the same URL whether I'm logged in or not.

Regards,
Maciej


Reply via email to