प्रभाव
क्रॉस-साइट अनुरोध जालसाजी (सीएसआरएफ) एक हमलावर को पीड़ित के ब्राउज़र को एक अलग वेबसाइट पर अवांछित कार्य करने के लिए धोखा देने की अनुमति देता है जहां पीड़ित वर्तमान में प्रमाणित है। क्योंकि ब्राउज़र स्वचालित रूप से अनुरोधों में कुकीज़ जैसे परिवेशीय क्रेडेंशियल शामिल करते हैं, एक हमलावर उपयोगकर्ता की जानकारी के बिना राज्य-बदलने वाले ऑपरेशन - जैसे पासवर्ड बदलना, डेटा हटाना, या लेनदेन शुरू करना - बना सकता है।
मूल कारण
सीएसआरएफ का मूल कारण वेब ब्राउज़र का किसी डोमेन से संबंधित कुकीज़ भेजने का डिफ़ॉल्ट व्यवहार है, जब भी उस डोमेन के लिए अनुरोध किया जाता है, भले ही अनुरोध का मूल [S1] कुछ भी हो। विशिष्ट सत्यापन के बिना कि अनुरोध जानबूझकर एप्लिकेशन के अपने उपयोगकर्ता इंटरफ़ेस से ट्रिगर किया गया था, सर्वर वैध उपयोगकर्ता कार्रवाई और जाली कार्रवाई के बीच अंतर नहीं कर सकता है।
Django CSRF सुरक्षा तंत्र
Django मिडलवेयर और टेम्पलेट एकीकरण [S2] के माध्यम से इन जोखिमों को कम करने के लिए एक अंतर्निहित रक्षा प्रणाली प्रदान करता है।
मिडलवेयर सक्रियण
django.middleware.csrf.CsrfViewMiddleware CSRF सुरक्षा के लिए जिम्मेदार है और आमतौर पर डिफ़ॉल्ट [S2] द्वारा सक्षम है। इसे किसी भी व्यू मिडलवेयर से पहले रखा जाना चाहिए जो मानता है कि CSRF हमलों को पहले ही [S2] से नियंत्रित किया जा चुका है।
टेम्पलेट कार्यान्वयन
किसी भी आंतरिक POST फॉर्म के लिए, डेवलपर्स को <form> तत्व [S2] के अंदर {% csrf_token %} टैग शामिल करना होगा। यह सुनिश्चित करता है कि अनुरोध में एक अद्वितीय, गुप्त टोकन शामिल है, जिसे सर्वर उपयोगकर्ता के सत्र के विरुद्ध मान्य करता है।
टोकन रिसाव जोखिम
एक महत्वपूर्ण कार्यान्वयन विवरण यह है कि {% csrf_token %} को बाहरी URL [S2] को लक्षित करने वाले फॉर्म में कभी भी शामिल नहीं किया जाना चाहिए। ऐसा करने से गुप्त सीएसआरएफ टोकन किसी तीसरे पक्ष को लीक हो जाएगा, जिससे संभावित रूप से उपयोगकर्ता की सत्र सुरक्षा [S2] से समझौता हो जाएगा।
ब्राउज़र-स्तरीय सुरक्षा: सेमसाइट कुकीज़
आधुनिक ब्राउज़रों ने Set-Cookie हेडर के लिए ZXCVFIXVIBTOKEN1ZXCV की गहराई से रक्षा की एक परत प्रदान करने के लिए ZXCVFIXVIBTOKEN0ZXCV विशेषता पेश की है।
- सख्त: कुकी केवल प्रथम-पक्ष संदर्भ में भेजी जाती है, जिसका अर्थ है कि यूआरएल बार में साइट कुकी के डोमेन [S1] से मेल खाती है।
- लैक्स: कुकी को क्रॉस-साइट उप-अनुरोधों (जैसे कि चित्र या फ़्रेम) पर नहीं भेजा जाता है, बल्कि तब भेजा जाता है जब कोई उपयोगकर्ता मूल साइट पर नेविगेट करता है, जैसे कि एक मानक लिंक [S1] का अनुसरण करके।
FixVibe इसका परीक्षण कैसे करता है
FixVibe में अब गेटेड सक्रिय जांच के रूप में CSRF सुरक्षा शामिल है। डोमेन सत्यापन के बाद, active.csrf-protection खोजे गए राज्य-बदलते रूपों का निरीक्षण करता है, CSRF-टोकन-आकार के इनपुट और सेमसाइट कुकी सिग्नल की जांच करता है, फिर कम प्रभाव वाले जाली-मूल सबमिशन का प्रयास करता है और केवल तभी रिपोर्ट करता है जब सर्वर इसे स्वीकार करता है। कुकी जाँच कमजोर सेमसाइट विशेषताओं को भी चिह्नित करती है जो सीएसआरएफ रक्षा-गहराई को कम करती है।
