2011-02-06 12 views
5

एंटीफोर्गेरी टोकन का उपयोग सीएसआरएफ हमलों को रोकने के लिए किया जाता है, हालांकि एमएसडीएन पर दिए गए लिंक मुझे एंटीफॉर्गेरी टोकन क्या करता है, या यह कैसे काम करता है, या चीजें कैसे तरीके से की जाती हैं, इस बारे में मुझे बहुत अंतर्दृष्टि नहीं देती है।एएसपी.नेट एमवीसी 3 के एंटीफोर्गेरी टोकन के कार्यान्वयन विवरण और तर्क क्या हैं?

जो मैं इकट्ठा करता हूं, वह एक वेब पेज और एक कुकी के अंदर हैश बनाता है। उनमें से एक या दोनों हैश IPrincipal.Name का उपयोग करते हैं, और सममित एन्क्रिप्शन का उपयोग करते हैं।

किसी के रूप में प्रकाश डाला जा सकता है:

  1. कैसे AntiForgeryToken आंतरिक रूप से काम करता है
  2. क्या यह
  3. की रक्षा के लिए क्या यह नहीं की रक्षा के लिए
  4. तर्क क्या है इस्तेमाल किया जाना चाहिए इस्तेमाल किया जाना चाहिए ऊपर # 1 के लिए कार्यान्वयन विकल्पों के पीछे?
    • उदाहरण:
      • कार्यान्वयन "DoubleSubmit" कुकी और अन्य आम भेद्यता से सुरक्षित
      • वहाँ कार्यान्वयन मुद्दों रहे हैं, तो उपयोगकर्ता एकाधिक टैब को खोलता है
      • क्या MSFT के कार्यान्वयन एक SANS पर उपलब्ध से अलग बनाता है
+0

क्या आप सीएसआरएफ के बारे में सोच रहे हैं? विशेष रूप से एमएस इसके साथ कैसे निपटता है? या बस आप सामान्य रूप से इसके साथ कैसे निपटेंगे? – CtrlDot

+0

@CtrlDot - मैं एमएसएफटी के कार्यान्वयन के पीछे सभी विवरणों के बारे में जानना चाहता हूं। मैं सीएसआरएफ पर जानकारी के बारे में जानकारी प्राप्त करने के लिए http://security.stackexchange.com पर जा सकता हूं और कुकीज़ जमा कर दूंगा – LamonteCristo

उत्तर

1

ठीक है, मेरा सबसे अच्छा शॉट है।

1) आंतरिक रूप से, एमवीसी एक्सएसआरएफ टोकन के रूप में कार्य करने के लिए 128 बिट स्ट्रिंग बनाने के लिए आरएनजी क्रिप्टो विधियों का उपयोग करता है। यह स्ट्रिंग एक कुकी में और साथ ही किसी छिपे हुए क्षेत्र में रूप में संग्रहीत होती है। कुकी नाम __RequestVerificationToken + के रूप में प्रतीत होता है जो अनुप्रयोग पथ (सर्वर पक्ष) का आधार 64 एन्कोडेड संस्करण है। इस के HTML हिस्सा AntiForgeryDataSerializer का उपयोग करता है डेटा के निम्न भाग क्रमानुसार करने - मूल्य (टोकन स्ट्रिंग) - - नमक निर्माण तिथि की टिक - उपयोगकर्ता नाम (Context.User की तरह लगता है)

सत्यापन विधि मूल रूप से कुकी और मूल्य के मूल्यों को deserializes और मूल्यों (नमक/मूल्य/ticks/उपयोगकर्ता नाम) के आधार पर उनकी तुलना करता है।

2/3) मुझे लगता है कि यह चर्चा XSRF टोकन का उपयोग कब करें और कब नहीं। मेरे दिमाग में, आपको इसे हर रूप में उपयोग करना चाहिए (मेरा मतलब है क्यों नहीं)। एकमात्र चीज जिसे मैं सोच सकता हूं कि यह रक्षा नहीं करता है अगर आपने वास्तव में प्रश्न में फॉर्म को मारा है या नहीं। ऐप नाम के बेस 64 एन्कोडिंग को जानने से हमलावर XSRF हमले के दौरान कुकी को देखने में सक्षम हो जाएगा। शायद मेरी व्याख्या गलत है।

4) सुनिश्चित नहीं है कि आप यहां क्या देख रहे हैं? मुझे लगता है कि मैंने एक तंत्र बनाया होगा जहां मैं सत्र में एक्सएसआरएफ टोकन को आजमाने और स्टोर करने की कोशिश करता हूं (यदि कोई पहले से ही उपलब्ध था) और यदि नहीं, तो कुकी दृष्टिकोण को आज़माएं। इस्तेमाल किए गए क्रिप्टो के प्रकार के रूप में, मुझे यह एसओ आर्टिकल मिला। Pros and cons of RNGCryptoServiceProvider

संबंधित मुद्दे