2010-10-25 15 views
5

मुझे साइट और सीएसआरएफ के साथ थोड़ा पागल/क्रूर बग मिला है।सीएसआरएफ विफलता के कारण इंटरमीटेंट 403s (Django 1.2.3)

हम Django 1.2.3, Python 2.6 Ubuntu पर Apache2 + mod_wsgi के साथ चल रहे हैं और परिणामस्वरूप 403 सीआरएसएफ सत्यापन विफलताओं और 403s की रिपोर्ट करने वाले अंतिम उपयोगकर्ता प्राप्त कर रहे हैं।

हमारे सभी रूपों में csrf_token है और - जहां तक ​​मुझे पता है - चीजें स्थानीय देव और मंच पर ठीक काम करती हैं (हम अभी तक उत्पादन में नहीं हैं) ... एक कार्यालय के लिए (ग्राहक, नाच)। यादृच्छिक अवसरों पर, उन्हें इस तरह के 403 मिलेंगे, लेकिन फिर रीफ्रेश करें और यह दूर हो जाएगा (इसलिए एचटीएमएल में टोकन की कमी नहीं है आदि)

मैं कारणों और समाधानों पर विचार कर रहा हूं, और यह हो सकता है कि कार्यालय में एक बेहद जबरदस्त या खराब सेट अप प्रॉक्सी कैश है, या इसी तरह, और हम जो कुछ भी कर सकते हैं, उसके बारे में कुछ सुझावों की सराहना करेंगे, डीजेगो/अपाचे तरीके से ओवर-द-टॉप प्रॉक्सी से निपटने के लिए (ग्राहक का कार्यालय जीता इन सेटअप को बदल नहीं सकते हैं) या इन सीएसआरएफ विफल होने के कारण और क्या हो सकता है।

Btw: इस स्क्रैच से एक 1.2.3 परियोजना, नहीं 1.1 उन्नयन किसी तरह का था, और हम सिर्फ एक मानक/सही 1.2.3 CSRFMiddleware और मैन्युअल रूप से जोड़ा csrf_tokens का उपयोग करें - नहीं CSRFResponseMiddleware स्वचालित रूप से csrf_token शामिल करने के लिए

इसके अलावा: यह दो अलग-अलग सर्वर (देव सर्वर और स्टेजिंग सर्वर) पर हुआ है, जो अलग-अलग स्थानों में होस्ट किए जाते हैं। सामान्य कारक (सिद्धांत में) एक ही Django/Apache/mod_wsgi सेटअप, एक ही कोडबेस और उसी कार्यालय को 403 प्राप्त कर रहे हैं (और 403s को अपने स्थान पर दोहराने में सक्षम नहीं हैं)।

उत्तर

2

किसी भी मदद की स्थिति में बस एक अपडेट।

हमने सीआरएसएफ संरक्षण को परीक्षण करने के लिए गिरा दिया (http://johnmc.co/llum/disable-csrf-protection-for-django-1-2/ का उपयोग करके)। इसने 403s को मंजूरी दे दी, लेकिन फिर हमारे पास उसी ग्राहक/स्थानीय नेटवर्क से शून्य-लंबाई वाले POST डेटा के लिए 500 के अंतराल थे, जिसने समझाया कि सीएसआरएफ विफल रहता है क्योंकि सत्र में टोकन मौजूद था लेकिन पेलोड में नहीं दूसरा रास्ता)।

तो, यह एक सीएसआरएफ मुद्दा नहीं था, विशेष रूप से, लेकिन एक पोस्ट-पेलोड-हो रही-ज़ेड-कहीं भी समस्या। (अधिकांश सिर्फ एक स्थान पर गलत कॉन्फ़िगर प्रॉक्सी द्वारा संभावना)

HTH

स्टीव

संबंधित मुद्दे