When using a pyramid.session session factory calling 
request.session.get_csrf_token seems to **always** be equivalent to using 
LegacySessionCSRFStoragePolicy (sort of by definition I suppose). 

You can confirm this by looking at the session.get_csrf_token definition in 

https://docs.pylonsproject.org/projects/pyramid/en/latest/_modules/pyramid/session.html#BaseCookieSessionFactory
 

and the call to it from LegacySessionCSRFStoragePolicy.get_csrf_token 

https://docs.pylonsproject.org/projects/pyramid/en/latest/_modules/pyramid/csrf.html#LegacySessionCSRFStoragePolicy.get_csrf_token
 

Given the above, if you are using a different storage policy the 
request.session.get_csrf_token will (almost by definition) differ. 

Janzert 

On Sunday, May 2, 2021 at 1:12:06 PM UTC-4 Eldav wrote:

> OK, I've been able to nail it down on a simple example : depending on
> the CSRF storage policy I use, "request.session.get_csrf_token()"
> (called from python or a template) and "get_csrf_token()" (called from
> a template) return the same value *or not*.
>
> - no storage policy => ok
> - LegacySessionCSRFStoragePolicy => ok
> - CookieCSRFStoragePolicy => ko
>
> I'm attaching my example, I called it "onefile.py", although I needed
> two files actually (one python file + one mako template). Sorry ;)
>
> Le mer. 28 avr. 2021 à 22:32, Laurent Daverio <ldav...@gmail.com> a écrit 
> :
> >
> > Thank you Steve. I'll have to think about it, not that the code is
> > secret, just a matter of knowing what to post to be relevant.
> >
> > Le mer. 28 avr. 2021 à 22:10, Steve Piercy
> > <steve.pi...@gmail.com> a écrit :
> > >
> > > It's difficult to say without your example. I've been using CSRF as 
> shown in the Deform demo without any issues.
> > >
> > > --steve
> > >
> > >
> > > On 4/28/21 10:32 AM, Laurent Daverio wrote:
> > > > Hello List,
> > > >
> > > > I'd like to report a problem I've just encountered, occurring betwen
> > > > Pyramid's CSRF protection and Deform.
> > > >
> > > > Basically, I have a Pyramid 2.0 web app configured along the lines of
> > > > the "URL dispatch wiki tutorial"
> > > > (
> https://docs.pylonsproject.org/projects/pyramid/en/2.0-branch/tutorials/wiki2/authentication.html
> ),
> > > > with some Deform forms in it.
> > > >
> > > > The Deform Demo
> > > > (https://deformdemo.pylonsproject.org/pyramid_csrf_demo/) shows how 
> to
> > > > use a deferred value to create hidden field "csrf_token" in the
> > > > generated forms.
> > > >
> > > > But there's a problem: the token generated that way doesn't have the
> > > > same value as when I directly call get_csrf_token() in a template.
> > > >
> > > > As I don't have the time/energy to fully investigate the problem 
> right
> > > > now, I think I will just use a workaround: as I'm using Diazo as a
> > > > theming engine (awesome tech, btw), I think I will add a rule to
> > > > inject the token into every form. Should work.
> > > >
> > > > Still, I wanted to take the time to report the problem, in case it
> > > > could be useful.
> > > >
> > > > Laurent.
> > > >
> > >
> > > --
> > > You received this message because you are subscribed to the Google 
> Groups "pylons-discuss" group.
> > > To unsubscribe from this group and stop receiving emails from it, send 
> an email to pylons-discus...@googlegroups.com.
> > > To view this discussion on the web visit 
> https://groups.google.com/d/msgid/pylons-discuss/44979a98-12ae-239e-8478-c2323aecfaf1%40gmail.com
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to pylons-discuss+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/pylons-discuss/96ea6ed5-0e07-406b-a5cd-4a77bc41fe59n%40googlegroups.com.

Reply via email to