[Web-SIG] urllib.unquote in paste.httpserver prevents slashes in path segments

Ian Bicking ianb at colorstudy.com
Thu Mar 17 21:10:56 CET 2011


It's implied by WSGI itself that the path be unquoted; there's no fix short
of changing the specification.


On Thu, Mar 17, 2011 at 1:10 PM, Florian Friesdorf <flo at chaoflow.net> wrote:

>
> I think paste.httpserver.WSGIHandlerMixin.wsgi_setup should not
> urllib.unquote the path [1] before setting it in the wsgi environment
> [2]. The only pre-processing performed on the path between [1] and [2]
> is concerned with slashes '/'. By urllib.unquoting it is not possible to
> have urllib.quoted slashes within one path segment.
>
> At least pyramid without routing fully relies on
> ``environ['PATH_INFO']`` [3]; by commenting [1] I succeeded to have
> slashes in path segments, they are handle by pyramid in [4]f.
>
> However, webob.request.BaseRequest would need to be adjusted wherever
> PATH_INFO from the environment is used (e.g [5]).
>
> Reasoning: The path stored in environ['PATH_INFO'] is still a path,
> therefore it must not be urllib.unquoted, the unquoting must happen
> after the path is split up in segments ([4]).
>
> [1]
> https://bitbucket.org/ianb/paste/src/4f5cfde87603/paste/httpserver.py#cl-180
> [2]
> https://bitbucket.org/ianb/paste/src/4f5cfde87603/paste/httpserver.py#cl-217
> [3]
> https://github.com/Pylons/pyramid/blob/master/pyramid/traversal.py#L594
> [4]
> https://github.com/Pylons/pyramid/blob/master/pyramid/traversal.py#L495
> [5]
> https://bitbucket.org/ianb/webob/src/c0bb5309cfca/webob/request.py#cl-265
>
> --
> Florian Friesdorf <flo at chaoflow.net>
>  GPG FPR: 7A13 5EEE 1421 9FC2 108D  BAAF 38F8 99A3 0C45 F083
> Jabber/XMPP: flo at chaoflow.net
> IRC: chaoflow on freenode,ircnet,blafasel,OFTC
>
> _______________________________________________
> Web-SIG mailing list
> Web-SIG at python.org
> Web SIG: http://www.python.org/sigs/web-sig
> Unsubscribe:
> http://mail.python.org/mailman/options/web-sig/ianb%40colorstudy.com
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/web-sig/attachments/20110317/4c039088/attachment.html>


More information about the Web-SIG mailing list