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