यह सवाल केवल क्रॉस साइट रिक्वेस्ट फॉरगिरी हमलों से बचाव के बारे में है।
यह विशेष रूप से इसके बारे में है: क्या ओरिजिन हेडर (कोर्स) के माध्यम से सुरक्षा सीएसआरएफ टोकन के माध्यम से सुरक्षा के रूप में अच्छी है?
उदाहरण:
- ऐलिस अपने ब्राउज़र के साथ " https://example.com " में (एक कुकी का उपयोग करके) लॉग इन है । मुझे लगता है, कि वह एक आधुनिक ब्राउज़र का उपयोग करती है।
- ऐलिस " https://evil.com " पर जाता है, और bad.com का क्लाइंट साइड कोड " https://example.com " (क्लासिक CSRF परिदृश्य) के लिए किसी प्रकार का अनुरोध करता है ।
इसलिए:
- यदि हम ओरिजिन हेडर (सर्वर-साइड), और कोई सीएसआरएफ टोकन चेक नहीं करते हैं, तो हमारे पास सीएसआरएफ सुरक्षा छेद है।
- यदि हम CSRF टोकन की जांच करते हैं, तो हम सुरक्षित हैं (लेकिन यह थोड़ा कठिन है)।
- यदि हम ओरिजिन हेडर की जांच करते हैं, तो bad.com के क्लाइंट साइड कोड से अनुरोध को केवल CSRF टोकन का उपयोग करते समय अवरुद्ध किया जाना चाहिए - इसके अलावा, अगर यह ओरिजिनल हेडर सेट करने के लिए bad.com के कोड के लिए किसी तरह संभव है।
मुझे पता है, कि यह एक्सएचआर ( क्रॉस-ऑरिजनल रिसोर्स शेयरिंग के लिए उदाहरण सुरक्षा देखें) के साथ संभव नहीं होना चाहिए , कम से कम नहीं, अगर हम सभी आधुनिक ब्राउज़रों में डब्ल्यू 3 सी कल्पना को सही तरीके से लागू करने का भरोसा करते हैं (क्या हम कर सकते हैं?)
लेकिन अन्य प्रकार के अनुरोधों के बारे में क्या है - उदाहरण के लिए फॉर्म सबमिट करें? एक स्क्रिप्ट लोड हो रहा है / img / ... टैग? या किसी अन्य तरीके से कोई पृष्ठ (कानूनी रूप से) अनुरोध करने के लिए उपयोग कर सकता है? या शायद कुछ ज्ञात जेएस हैक?
नोट: मैं बात नहीं कर रहा हूँ
- देशी अनुप्रयोग,
- ब्राउज़ किए गए ब्राउज़र,
- example.com के पृष्ठ में क्रॉस साइट स्क्रिप्टिंग बग्स,
- ...
Origin
? कि कोर सुरक्षा की उपेक्षा करेगा।