Microsoft हमें अंतर्निहित कार्यक्षमता प्रदान करता है जिसका उपयोग हम अपने अनुप्रयोगों में सुरक्षा उद्देश्यों के लिए करते हैं, इसलिए कोई भी हमारी साइट को हैक नहीं कर सकता है या कुछ महत्वपूर्ण जानकारी पर आक्रमण नहीं कर सकता है।
ValidateAntiForgeryToken का उपयोग
आइए इस अवधारणा को समझने के लिए एक सरल उदाहरण के साथ प्रयास करें। मैं इसे बहुत जटिल नहीं बनाना चाहता, इसीलिए मैं एक MVC एप्लिकेशन के टेम्पलेट का उपयोग करने जा रहा हूं, जो पहले से ही Visual Studio में उपलब्ध है। हम इस कदम को चरणबद्ध तरीके से करेंगे। चलो शुरू करते हैं।
चरण 1 - डिफ़ॉल्ट इंटरनेट टेम्प्लेट के साथ दो एमवीसी एप्लिकेशन बनाएं और क्रमशः क्रोससाइट_रैवेस्टफेर्गरी और अटैक_ऐप्लिकेशन के नाम दें।
अब, CrossSite_RequestForgery एप्लिकेशन का वेब कॉन्फ़िगरेशन खोलें और नीचे दिए गए एक के साथ कनेक्शन स्ट्रिंग को बदलें और फिर सहेजें।
`
<connectionStrings> <add name="DefaultConnection" connectionString="Data Source=local\SQLEXPRESS;Initial Catalog=CSRF;
Integrated Security=true;" providerName="System.Data.SqlClient" />
</connectionStrings>
अब, Tools >> NuGet Package Manager, फिर पैकेज मैनेजर कंसोल पर क्लिक करें
अब डेटाबेस बनाने के लिए पैकेज मैनेजर कंसोल में नीचे बताई गई तीन कमांड चलाएं।
सक्षम करें-माइग्रेशन पहला अपडेट-डेटाबेस ऐड-माइग्रेशन
महत्वपूर्ण नोट्स - मैंने कोड पहले दृष्टिकोण के साथ डेटाबेस बनाया है क्योंकि मैं इस उदाहरण को डेवलपर्स के काम करने के तरीके से बनाना चाहता हूं। आप मैन्युअल रूप से भी डेटाबेस बना सकते हैं। यह तुम्हारी पसंद है।
- अब, खाता नियंत्रक खोलें। यहां, आपको एक रजिस्टर विधि दिखाई देगी जिसका प्रकार पोस्ट है। इस विधि के ऊपर, [ValidateAntiForgeryToken] के रूप में एक विशेषता उपलब्ध होनी चाहिए। इस विशेषता पर टिप्पणी करें। अब, रजिस्टर पर राइट क्लिक करें और व्यू पर जाएं पर क्लिक करें। वहाँ फिर से, आप @ Html.AntiForgeryToken () के रूप में एक html सहायक पाएंगे। यह भी एक टिप्पणी करें। एप्लिकेशन चलाएं और रजिस्टर बटन पर क्लिक करें। URL इस प्रकार खुलेगा:
http: // localhost: 52,269 / खाता / पंजीकरण
नोट्स - मुझे पता है कि अब सभी पाठकों के मन में यह सवाल उठ रहा है कि इन दो सहायकों को टिप्पणी करने की आवश्यकता क्यों है, क्योंकि सभी जानते हैं कि इनका उपयोग अनुरोध को मान्य करने के लिए किया जाता है। फिर, मैं आप सभी को बताना चाहता हूं कि यह सिर्फ इसलिए है क्योंकि मैं इन सहायकों को लागू करने से पहले और बाद में अंतर दिखाना चाहता हूं।
अब, दूसरा एप्लिकेशन खोलें जो Attack_Application है। फिर, खाता नियंत्रक का रजिस्टर तरीका खोलें। बस नीचे दिखाए गए सरल के साथ POST विधि को बदलें।
पंजीकरण फॉर्म
- @ Html.LabelFor (m => m.UserName) @ Html.TextBoxFor (m => m.UserName)
- @ Html.LabelFor (m => m.Password) @ Html.PasswordFor (m => m.Password)
- @ Html.LabelFor (m => m.ConfirmPassword) @ Html.PasswordFor (m => m.ConfirmPassword)
7.अब, मान लीजिए कि आप एक हैकर हैं और आपको वह URL पता है जहाँ से आप उपयोगकर्ता को CrossSite_RequestForgery एप्लिकेशन में पंजीकृत कर सकते हैं। अब, आपने एक Forgery साइट को Attacker_Application के रूप में बनाया और बस उसी URL को पोस्ट विधि में रखा।
8. अब इस एप्लिकेशन को देखें और रजिस्टर फ़ील्ड भरें और रजिस्टर पर क्लिक करें। आप देखेंगे कि आप CrossSite_RequestForgery एप्लिकेशन में पंजीकृत हैं। यदि आप CrossSite_RequestForgery एप्लिकेशन के डेटाबेस की जांच करते हैं, तो आप देखेंगे और आपके द्वारा दर्ज की गई प्रविष्टि।
- महत्वपूर्ण - अब, CrossSite_RequestForgery एप्लिकेशन खोलें और खाता नियंत्रक में टोकन की टिप्पणी करें और दृश्य दर्ज करें। उसी प्रक्रिया के साथ फिर से पंजीकरण करने का प्रयास करें। फिर, नीचे एक त्रुटि होगी।
/ 'अनुप्रयोग में सर्वर त्रुटि ________________________________________ आवश्यक एंटी-फर्जी कुकी "__RequestVerificationToken" मौजूद नहीं है।
यह अवधारणा कहती है। हम View अर्थात @ Html.AntiForgeryToken () में लोड समय पर __RequestVerificationToken और [ValidateAntiForgeryToken] नियंत्रक विधि पर उपलब्ध है। इस टोकन को पोस्ट टाइम पर मिलान करें। यदि टोकन समान है, तो इसका मतलब है कि यह एक वैध अनुरोध है।