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

Florian Friesdorf flo at chaoflow.net
Thu Mar 17 19:10:22 CET 2011


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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 835 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/web-sig/attachments/20110317/3d812b66/attachment.pgp>


More information about the Web-SIG mailing list