Hi,

We are seeing a strange issue with CSRF in Django. We are using Django 
1.8.4. 

Ours is an ecommerce site which has been up since an year. We have been 
observing 403 CSRF errors now and then for form posts. But the issue is 
intermittent and suddenly pops up. I mean the form posts work fine for 
days/weeks but then suddenly the CSRF error starts showing up. On digging 
further, when we check the POST request in inspect element, the CSRF shows 
in the post and cookie:
Cookie:QGUserId=%220319088571507253%22; mailer_popup=no; 
sessionid=si11ft0y1w6fr1ostgd9yd0yi88xpyo9; ga=GA1.3.133645024.1488272511; 
jivaana_country=IN; 
jivaana_last_visited_page=/product/traditional-maharastrian-earrings-green-12629/;
 
jivaana_last_visited_product=Traditional Maharastrian Earrings - Green; 
jivaana_last_visited_image=undefined; last_session_reminder=1; 
jivaana_last_visited_catalogue=/footwear/juttis/; oscar_history="[6251\054 
11144\054 8724\054 17749\054 7849\054 11402]"; 
jivaana_product_list=[{"page":"/product/electric-daisy-11402/","name":"Blue 
Juttis - Electric Daisy","image":"
http://www.jivaana.com/cache/74/d0/electric-daisy_juttis_red-pink-black-green-yellow_147937470755-74d09c587f73dc8135e005422b9e6b59.jpg"}];
 
cart_prod_title=Blue Juttis - Electric Daisy; cart_prod_image=
http://www.jivaana.com/cache/74/d0/electric-daisy_juttis_red-pink-black-green-yellow_147937470755-74d09c587f73dc8135e005422b9e6b59.jpg;
 
cart_session_reminder=1; 
messages="03d4207b1d9610be355acf1ee7667642dbace557$[[\"__json_message\"\0541\05425\054\"\\n\\n\\n
 
   \\n    <strong>Blue Juttis - Electric Daisy</strong> has been added to 
your cart.\\n    \\n\\n\"\054\"safe 
noicon\"]\054[\"__json_message\"\0541\05420\054\"\\n\\n\\n<p>\\n    \\n     
   \\n            \\n            Your cart total is now 
<strong>\\u00a0\\u20b94\054020</strong>\\n            \\n        \\n   
 \\n</p>\\n\\n\"\054\"safe noicon\"]]"; gat_tw=1; qg_identified=true; 
csrftoken=NnjVnLA5tUW8DEQhuUx3wtZJxbIYx1ex; gat=1; 
_ga=GA1.2.133645024.1488272511

view URL encoded
csrfmiddlewaretoken:NnjVnLA5tUW8DEQhuUx3wtZJxbIYx1ex
form-TOTAL_FORMS:2
form-INITIAL_FORMS:2
form-MIN_NUM_FORMS:0
form-MAX_NUM_FORMS:1000
form-0-quantity:2
form-0-id:46476
form-1-quantity:1
form-1-id:49589

But when I dump the request log in the Django server, the csrftoken cookie 
is missing:
csrfmiddlewaretoken=NnjVnLA5tUW8DEQhuUx3wtZJxbIYx1ex&form-TOTAL_FORMS=2&form-INITIAL_FORMS=2&form-MIN_NUM_FORMS=0&form-MAX_NUM_FORMS=1000&form-0-quantity=2&form-0-id=46476&form-1-quantity=1&form-1-id=49589
 [0m
{'jivaana_last_visited_page': 
'/product/traditional-maharastrian-earrings-green-12629/', 
'jivaana_last_visited_image': 'undefined', 'jivaana_country': 'IN', 
'last_session_reminder': '1', '_ga': 'GA1.3.133645024.1488272511', 
'mailer_popup': 'no', 'sessionid': 'si11ft0y1w6fr1ostgd9yd0yi88xpyo9', 
'QGUserId': '%220319088571507253%22', 'jivaana_last_visited_product': 
'Traditional', 'oscar_history': '[6251, 11144, 8724, 17749, 7849, 11402]', 
'jivaana_last_visited_catalogue': '/footwear/juttis/'}

The log is getting dumped in Django Middleware, hence, not sure if Django 
Strips off the csrftoken cookie from request. If Django is not stripping 
off the CSRF cookie, then this is  an issue with CSRF and the missing 
csrftoken cookie explains the 403 forbidden error. 
On clearing browser cache, the form POST starts working again. 

I am not sure why the above is happening and hence, was wondering if anyone 
has faced similar issue and have an answer/solution to the above. The above 
issue occurs only for few users (not all) but its affecting our business.

Also, when the 403 CSRF occurs, Django throws a DEBUG page with following 
content:

CSRF Verification failed. Request aborted.......You are seeing this page 
because you have DEBUG=TRUE. 

The above error page should not occur as in our production DEBUG is set to 
False.

Would appreciate if someone could throw some light on the above issues.

Thanks.


-- 
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/93d8e49a-782a-4b14-8977-f2be9c2685a9%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to