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¶m2=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¶m2=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