अगर मैं अपने रूपों में सीएसआरएफ टोकन का उपयोग नहीं करता तो जोखिमों का क्या खतरा है? मैं सरल लेबल या जोखिमों के नाम की तलाश नहीं कर रहा हूं, क्योंकि ये भ्रमित हो सकते हैं। मुझे यह समझने की जरूरत है कि वास्तव में एक हमलावर क्या कर सकता है और केवल सादे अंग्रेजी में, यह किस परिस्थिति में कर सकता है।सीएसआरएफ टोकन के बिना फॉर्म: जोखिम क्या हैं
उत्तर
एक सीएसआरएफ भेद्यता एक ऐसा है जो एक दुर्भावनापूर्ण उपयोगकर्ता (या वेबसाइट) को एक अप्रत्याशित उपयोगकर्ता को आपकी साइट पर एक क्रिया करने की अनुमति देता है जिसे वे नहीं करना चाहते थे।
कुछ असली दुनिया के उदाहरण ऐसी चीजें होंगी जैसे आपने उपयोगकर्ता को POST के बजाय GET पर खाता हटाने की अनुमति दी है, कोई आपकी साइट पर निम्न टिप्पणी पोस्ट कर सकता है (मानते हैं कि साइट पर टिप्पणियां या अन्य इनपुट पोस्ट करने का कोई तरीका है, इत्यादि)
मैंने सोचा कि मैं आपकी साइट पर एक टिप्पणी करूंगा। इस शांत छवि को देखें!
< img src = 'http: //example.com/delete_my_account.php "/ >
और अब किसी भी समय एक उपयोगकर्ता भार उस पृष्ठ में लॉग इन, अपने अकाउंट को हटा दिया जाएगा तो इस पर किया गया था। जीईटी के बजाए पोस्ट करें, कोई व्यक्ति फॉर्म तैयार कर सकता है और इसे सबमिट करने में उपयोगकर्ताओं को धोखा दे सकता है और वही परिणाम होगा। अगर आप सीएसआरएफ टोकन का इस्तेमाल करते हैं, तो यह संभव नहीं होगा।
एक और उदाहरण यह होगा कि एक बाहरी साइट एक ऐसी साइट तैयार कर सकती है जो आपकी साइट पर पोस्ट करती है, और एक अवांछनीय कार्रवाई करती है। तो मान लीजिए कि आपकी साइट में एक शॉपिंग कार्ट है जो सीएसआरएफ टोकन का उपयोग नहीं करता है। एक दुर्भावनापूर्ण साइट एक फॉर्म के साथ एक फॉर्म बना सकती है टटन जो कहता है "पंजीकरण करने के लिए यहां क्लिक करें", लेकिन वास्तव में आपकी साइट से कुछ 1000 का ऑर्डर करता है। यदि आपकी साइट से लॉग इन उपयोगकर्ता इस दुर्भावनापूर्ण साइट पर जाता है और बटन पर क्लिक करता है, तो उसे मेल में एक अच्छा आश्चर्य मिलेगा।
स्पष्ट रूप से अन्य मामले हैं, ये केवल कुछ उदाहरण हैं। एक Google खोज में बहुत से लेख और ट्यूटोरियल दिखाना चाहिए, जिनमें से कई शायद कुछ अन्य उदाहरण होंगे। Wikipedia page में कुछ उदाहरण भी हैं जो आपको दिलचस्प लग सकते हैं।
उदाहरणों का मुख्य विचार यह है कि कोई व्यक्ति आपकी साइट को एक क्रिया से करने के लिए चाल कर सकता है जैसे कि यह उपयोगकर्ता से आया था, जब वास्तव में उपयोगकर्ता को पता नहीं था कि यह हो रहा था या ऐसा नहीं होना चाहता था। यदि आपके पास ऐसी साइट पर कोई भी प्रकार की कार्रवाई है जो विनाशकारी है (यानी उपयोगकर्ता खाते से चीजों को हटा सकते हैं, उपयोगकर्ता को लॉगआउट कर सकते हैं) या महत्वपूर्ण (यानी पैसे के साथ सौदे) तो आपको शायद सीएसआरएफ टोकन का उपयोग करना चाहिए। यदि आपकी साइट सिर्फ दोस्तों के लिए एक फोटो एलबम है, तो आपको शायद सीएसआरएफ टोकन से परेशान करने की आवश्यकता नहीं है (हालांकि जब आप ऐसी साइट बनाते हैं, तो अभ्यास करना हमेशा अच्छा होता है)।
जब तक आप यह सुनिश्चित करने के लिए टोकन जोड़ते हैं कि कोई अनुरोध आपकी साइट को जानबूझकर उपयोगकर्ता को प्रस्तुत नहीं किया गया है, तो आपके पास वास्तव में यह जानने का कोई तरीका नहीं है कि उपयोगकर्ता कार्रवाई करने का इरादा रखता है या नहीं।
तो आप हमेशा अपने द्वारा बनाए गए प्रत्येक फॉर्म पर एक अद्वितीय टोकन का उपयोग करना चाहते हैं और अपनी साइट पर पोस्ट किए गए किसी भी अनुरोध को मान्य करने के लिए वर्तमान उपयोगकर्ता के लिए वैध टोकन है। कुछ समय के बाद टोकन की अवधि समाप्त करने के लिए भी सुनिश्चित करें ताकि वे हमेशा के लिए नहीं रहें।
मैं आपको इस उत्कृष्ट लेख को पढ़ने के लिए सलाह दूंगा कि CSRF क्या है और आप इसके खिलाफ अपने आप को कैसे सुरक्षित रख सकते हैं।
लेख का सारांश बताता है कि मैं बेवकूफ हूं: $ इसमें एक अनुभाग है "उदाहरण एक्सप्लॉइट" – Alfred
@samquo आपकी साइट पर शायद इस पर हमला नहीं किया जा रहा है। लेकिन उदाहरण के लिए यदि कुकी एसईटी होने पर सीएसआरएफ सुरक्षा नहीं है तो वे मेरे खाते का उपयोग करके ईमेल भेज सकते हैं। यह वास्तव में लेख में है। आपको इसे पढ़ना चाहिए? – Alfred
@samquo आपकी साइट पर शायद इस पर हमला नहीं किया जा रहा है। लेकिन उदाहरण के लिए यदि जीमेल में सीईआरएफ सुरक्षा नहीं है तो कुकी एसईटी (मैं लॉग इन हूं) वे मेरे खाते का उपयोग करके ईमेल भेज सकते हैं। यह वास्तव में लेख में है। आपको इसे पढ़ना चाहिए? – Alfred
ऐप सुरक्षा के बारे में और जानने के लिए किसी की तरह लगता है। – park