If you can demonstrate a practical attack against Django's CSRF system, feel free to email it to [email protected].
On Tue, Jan 16, 2018 at 1:26 AM, Etienne Robillard <[email protected]> wrote: > Hi Stephan, > > I'm also interested to understand why I should have some form of CSRF > protection for my wsgi app... > > perhaps recoding the Django 1.11 CSRF middleware into a proper WSGI > application (CSRFController) would help. > > but seriously, i don't use/recommend the Django CSRF middleware because it > does not improve security of forms processing. > > > cheers, > > Etienne > > > > Le 2018-01-15 à 17:03, Stephan Doliov a écrit : > > Just curious, I recently went on a source code studying binge and took a > look at the CSRF middleware that comes with Django. I appreciate the work > and effort of the authors, but I am not sure I gain anything by deploying > it to my site. Here is why: > The middleware token assigned to a form and to a csrftoken cookie are > ciphertexts of the same underlying key (by default, the underlying key is > chosen as 32 randomly chosen (with replacement) chars from a set of 62 > chars. So the easy workaround can be done in one of two ways > > 1) Write a script that just harvests the middleware token from a form > "protected" with such token and use the value of that as the csrftoken > cookie. > As the middlewaretoken is a cipher of the underlying token, obviously > using the the same string as the value to the csrftoken cookie will satisfy > the middleware's demand for authorization of the resource (e.g. POSTing to > the form) > > 2) Learn the easy cipher algorithm the csrf middleware uses and present a > csrf token cookie that will decode to the right value. > > In either case, I am not convinced that meaningful protection against CSRF > types of requests are provided by the middleware. Am I missing something? > > Wouldn't it be more secure to just have middleware that whitelists as a > series of origins (aka CORS) and then, unlike CORS, actually perform > reverse lookups on the dns of the whitelisted domains? (Of course, this > assumes that the hosts that might want to make cross-site requests ahve > access to managing their reverse DNS). > > Am I missing something; or, if serving performance is a top goal of mine, > should I just ditch the csrf middleware? (and maybe rate limit client > requests to prevent DoS attacks)? > > Thanks, > Steve > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/django-users. > To view this discussion on the web visit https://groups.google.com/d/ > msgid/django-users/9c4a794f-aa9e-4c00-ba20-779ad7a87d2a%40googlegroups.com > <https://groups.google.com/d/msgid/django-users/9c4a794f-aa9e-4c00-ba20-779ad7a87d2a%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > > > -- > Etienne [email protected]https://www.isotopesoftware.ca/ > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/django-users. > To view this discussion on the web visit https://groups.google.com/d/ > msgid/django-users/95bba86c-ed2e-fd8d-e7da-2ec1b80c273c%40yandex.com > <https://groups.google.com/d/msgid/django-users/95bba86c-ed2e-fd8d-e7da-2ec1b80c273c%40yandex.com?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAL13Cg9mhBTD-2CBB46cvv2N6gd0JzHA8g5o%2BgrG5ZrAmb-%3Dgg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.

