Repost: Inconsistent URL encoding in X-Accel-Redirect

Igor Sysoev is at rambler-co.ru
Wed May 6 08:40:24 MSD 2009


On Tue, May 05, 2009 at 04:44:39PM -0700, Brian Moran wrote:

> Sorry for the repost :: can anyone else confirm what we're seeing? :
> I believe I've found an inconsistency in url encoding of 
> X-Accel-Redirect requests.
> 
> The URL that I'm providing in my X-Accel-Redirect header looks something 
> like:
> /BACKING_HOST_LOCATION/Green%20Apple.gif?param1=TzJPvoCEV34&param2=U%2F8%3D
> 
> When this is supplied to nginx, the PATH part of the url gets url 
> encoded, however the parameters are passed untouched to the upstream 
> (sniffed with wireshark):
> 
> GET /Green%2520Apple.gif?param1=TzJPvoCEV34&param2=U%2F8%3D
> 
> (everything BEFORE the ? is urlencoded, the params are not)
> 
> I have a really, really gross hack where I only url encode the 
> parameters to be supplied, and leave the path alone, then pass to nginx 
> but this seems like a bug to me.
> 
> It would be convenient to have greater control of the the 
> X-Accel-Redirect urlencoding process; there are some times when I'd like
> to supply a pre-encoded URL and pass it unchanged to the upstream.
> 
> I have tried this in 0.7.6, believe it also occurs in 0.6.x

Internally nginx uses unescaped URIs (PATH part), therefore it accepts
unescaped URI in X-Accel-Redirect.


-- 
Igor Sysoev
http://sysoev.ru/en/





More information about the nginx mailing list