On 03/01/2011 05:32 AM, Georges Dubus wrote:
> Hi there
>
> I was looking at the virginia sample application, and I have a few
> question :
>
> - What mechanism protects the application from viewing the /../ dir ?
> I know the open method from Filesystem check the path before opening a
> file, but that doesn't explain that when going to the url http://localhost:6543/../
> , I am redirect to http://localhost:6543/../ .
I'm afraid the example doesn't defend against relative '..' at all.
> - Is there a reason so much interfaces are used ? IFilesystem is never
> referenced outside of Filesystem, and IStructuredText isn't even
> implemented.
>
> Thank for helping me understand that.
The pattern of registering views and adapters against interfaces, rather
than directly against classes, goes back to our Zope-ish roots. I think
some of those interfaces are actually left over from the time when Chris
re-wrote 'repoze.kiss' to function as a BFG-based application: in
'repoze.kiss', there were real views registered for all the interfaces.
Tres.
- --
===================================================================
Tres Seaver +1 540-429-0999 tse...@palladion.com
Palladion Software "Excellence by Design" http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAk1tbI4ACgkQ+gerLs4ltQ6ZLQCgvorjihl46I9qN6owboTb20vw
mxcAnRAwA3sD0BkDVWTHUixH4puvKNpY
=VutI
-----END PGP SIGNATURE-----
In a traversal-based application, Pyramid recomputes all '..' segments
from the path at ingress, computing a traversal path before the
application ever sees it.
> >
> > The pattern of registering views and adapters against interfaces, rather
> > than directly against classes, goes back to our Zope-ish roots. I think
> > some of those interfaces are actually left over from the time when Chris
> > re-wrote 'repoze.kiss' to function as a BFG-based application: in
> > 'repoze.kiss', there were real views registered for all the interfaces.
> >
> Historical reasons ? That's what I thought. But, as it's used as an
> example application, wouldn't it be less confusing for newcomers to
> "clean" the application from the bits that aren't useful any more, in
> order to get a minimal working example ? If that's a good, idea, I
> volonteer.
That'd be fine by me, if you can work up a pull request.
- C