> -----Original Message-----
> From: Boris Zbarsky [mailto:bzbar...@mit.edu]
> Sent: Sunday, October 14, 2012 12:49 AM
> 
> On 10/13/12 5:08 AM, Hallvord R. M. Steen wrote:
> > I came across an article [1] that describes some of the reasoning for
> > Flash's change in security policy when it banned setting User-Agent.
> > Apparently, some sites echo the User-Agent value back in markup in
> > certain contexts (maybe a "browser requirements" page for example).
> 
> And naturally do not send "Vary: User-Agent"?

I'm not sure what Hallvord assumed here, but if certain backend intends to 
provide its content under some browser requirements, isn't "Vary: User-Agent" 
sort of a required header to have related caching proxy, if any, work 
correctly? Otherwise, subsequent requests on the same resource with different 
User-Agent string would be regarded as a cache HIT in caching proxy anyway.

Anyway, the point here is that if changing of User-Agent is allowed in script, 
it will be possible for malicious third party to set arbitrary User-Agent 
strings in generating XSS attacks.

To which Hallvord wrote:
> > So it seems reasonable to keep the limitation on setting User-Agent. 

+1.

> > (I'm still wondering if we could lift it only for the cross-domain case 
> > where the target site must opt in to receiving a changed UA string though..)

-1. I don't know if there can be any smart way, but as of now I don't think it 
is a good way to determine the availability of setRequestHeader('User-Agent', 
...) depending on the choice of certain backend.


Jungkee


> 
> > However, another threat might be using an XHR request to put a
> > generated page with injected content in the browser's cache, then
> > opening the page directly in a new window. The page would likely be
> > taken from cache
> 
> This seems simple enough to deal with on the browser side: Assume "Vary:
> User-Agent" on all requests.  Probably a good idea anyway.
> 
> -Boris


Reply via email to