FixVibe
Covered by FixVibehigh

CSRF संरक्षण: अनधिकृत राज्य बदलांपासून बचाव

क्रॉस-साइट रिक्वेस्ट फोर्जरी (CSRF) वेब ऍप्लिकेशन्ससाठी एक महत्त्वपूर्ण धोका आहे. हे संशोधन Django सारखे आधुनिक फ्रेमवर्क संरक्षण कसे लागू करते आणि SameSite सारख्या ब्राउझर-स्तरीय विशेषता अनधिकृत विनंत्यांच्या विरूद्ध सखोल संरक्षण कसे प्रदान करते हे शोधते.

CWE-352

प्रभाव

क्रॉस-साइट रिक्वेस्ट फोर्जरी (CSRF) आक्रमणकर्त्याला बळीच्या ब्राउझरला फसवण्याची परवानगी देते भिन्न वेबसाइटवर अवांछित कृती करण्यासाठी जिथे पीडित सध्या प्रमाणित आहे. ब्राउझर आपोआप विनंत्यांमध्ये कुकीज सारख्या सभोवतालची क्रेडेन्शियल्स समाविष्ट करत असल्याने, आक्रमणकर्ता वापरकर्त्याच्या माहितीशिवाय-जसे की पासवर्ड बदलणे, डेटा हटवणे किंवा व्यवहार सुरू करणे यासारखी स्थिती बदलणारी ऑपरेशन्स बनवू शकतो.

मूळ कारण

सीएसआरएफचे मूळ कारण म्हणजे जेव्हा त्या डोमेनला विनंती केली जाते तेव्हा डोमेनशी संबंधित कुकीज पाठवण्याचे वेब ब्राउझरचे डीफॉल्ट वर्तन आहे, विनंतीचे मूळ [S1]. अनुप्रयोगाच्या स्वतःच्या वापरकर्ता इंटरफेसमधून विनंती हेतुपुरस्सर ट्रिगर केल्याचे विशिष्ट प्रमाणीकरणाशिवाय, सर्व्हर कायदेशीर वापरकर्ता कृती आणि बनावट मधील फरक करू शकत नाही.

Django CSRF संरक्षण यंत्रणा

मिडलवेअर आणि टेम्प्लेट इंटिग्रेशन [S2] द्वारे हे धोके कमी करण्यासाठी Django अंगभूत संरक्षण प्रणाली प्रदान करते.

मिडलवेअर सक्रियकरण

django.middleware.csrf.CsrfViewMiddleware CSRF संरक्षणासाठी जबाबदार आहे आणि सामान्यत: डीफॉल्ट [S2] सक्षम केले जाते. CSRF हल्ले आधीच [S2] हाताळले गेले आहेत असे गृहीत धरणाऱ्या कोणत्याही व्ह्यू मिडलवेअरच्या आधी ते स्थित करणे आवश्यक आहे.

टेम्पलेट अंमलबजावणी

कोणत्याही अंतर्गत POST फॉर्मसाठी, विकासकांनी <form> घटक [S2] मध्ये {% csrf_token %} टॅग समाविष्ट करणे आवश्यक आहे. हे सुनिश्चित करते की विनंतीमध्ये एक अद्वितीय, गुप्त टोकन समाविष्ट केले आहे, जे सर्व्हर नंतर वापरकर्त्याच्या सत्राविरूद्ध प्रमाणित करते.

टोकन लीकेज धोके

एक गंभीर अंमलबजावणी तपशील असा आहे की {% csrf_token %} बाह्य URLs [S2] ला लक्ष्यित करणाऱ्या फॉर्ममध्ये कधीही समाविष्ट करू नये. असे केल्याने गुप्त CSRF टोकन तृतीय पक्षाकडे लीक होईल, संभाव्यतः वापरकर्त्याच्या सत्र सुरक्षेशी तडजोड होईल [S2].

ब्राउझर-स्तरीय संरक्षण: समान साइट कुकीज

आधुनिक ब्राउझरने Set-Cookie हेडरसाठी SameSite विशेषता सादर केली आहे जेणेकरून संरक्षण-सखोल [S1] चा स्तर प्रदान केला जाईल.

  • कठोर: कुकी फक्त प्रथम-पक्षाच्या संदर्भात पाठवली जाते, म्हणजे URL बारमधील साइट कुकीच्या डोमेन [S1] शी जुळते.
  • लॅक्स: कुकी क्रॉस-साइट सबरिक्वेस्टवर पाठवली जात नाही (जसे की प्रतिमा किंवा फ्रेम) परंतु जेव्हा वापरकर्ता मूळ साइटवर नेव्हिगेट करतो, जसे की [S1] या मानक लिंकचे अनुसरण करून पाठवले जाते.

त्यासाठी FixVibe चाचण्या कशा करतात

FixVibe मध्ये आता CSRF संरक्षण गेट केलेले सक्रिय चेक म्हणून समाविष्ट आहे. डोमेन पडताळणीनंतर, active.csrf-protection शोधलेल्या स्थिती-बदलणाऱ्या फॉर्मची तपासणी करते, CSRF-टोकन-आकाराचे इनपुट आणि सेमसाइट कुकी सिग्नल तपासते, नंतर कमी-प्रभाव असलेल्या बनावट-मूळ सबमिशनचा प्रयत्न करते आणि सर्व्हर जेव्हा ते स्वीकारतो तेव्हाच अहवाल देतो. कुकी चेक देखील कमकुवत SameSite विशेषता ध्वजांकित करतात ज्यामुळे CSRF संरक्षण-सखोलता कमी होते.