2009-01-08 9 views
66

एएसपी.Net फॉर्म प्रमाणीकरण के साथ काम करते समय मैं .SPXAUTH कुकी में आया था। मेरे पास कुछ प्रश्न हैं:एएसपीएक्सएथ कुकी क्या है?

  • इस कुकी का उद्देश्य क्या है?
  • इस कुकी का स्थान क्या है?

उत्तर

74

एएसपीएक्सएयूटी कुकी का उपयोग यह निर्धारित करने के लिए किया जाता है कि उपयोगकर्ता प्रमाणित है या नहीं।

कुकी के स्थान तक, यह आपके ब्राउज़र पर निर्भर करता है। यदि आप फ़ायरफ़ॉक्स का उपयोग कर रहे हैं तो आप टूल्स -> विकल्प -> गोपनीयता पर क्लिक करके कुकी देख सकते हैं। फिर डोमेन पर स्क्रॉल करें और कुकी और उसके मूल्य को देखने के लिए इसका विस्तार करें। मान मशीन कुंजी (सर्वर की machine.config या web.config फ़ाइल में स्थित) का उपयोग करके एन्क्रिप्ट किया गया है, इसलिए क्लाइंट पर कुकी को देखकर वास्तव में आपको कोई जानकारी नहीं मिल जाएगी। आप/डिक्रिप्ट का उपयोग कर सर्वर साइड पर मूल्य देख सकते हैं:

HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];//.ASPXAUTH 
FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value); 

जहां authTicket इन क्षेत्रों है:

enter image description here

बयान "ASPXAUTH मूल रूप से ASP.NET सत्र स्थिति बनाए रखने के लिए प्रयोग किया जाता है" गलत है। ASP.NET सत्र स्थिति को ट्रैक करने के लिए ASP.NET_SessionId नामक एक पूरी तरह से अलग कुकी जारी करता है।

+2

फ़ायरफ़ॉक्स v8 पर।0 कुकीज़ निम्नानुसार पाई जा सकती हैं: टूल्स -> पेज जानकारी -> सुरक्षा -> कुकीज़ देखें – Anthony

+0

उसी सुरक्षा टैब में "सहेजे गए पासवर्ड देखें" बटन है और मेरे आश्चर्य के लिए मैं सभी पासवर्ड को सादे के रूप में देख पा रहा था विभिन्न वेबसाइटों के लिए पाठ जो मैं फ़ायरफ़ॉक्स का उपयोग कर ब्राउज़ कर रहा था। हालांकि ब्राउज़र को डिस्क पर एन्कोडेड प्रारूप में संग्रहीत करना होगा और यह केवल आपके संदर्भ के लिए इसे डीकोड करके दिखाता है लेकिन यह विकल्प वास्तव में एक सुरक्षा खतरा है जितना मैं सोच सकता हूं। यदि कोई हैकर एक ही एल्गोरिदम को नियोजित कर सकता है और जावास्क्रिप्ट का उपयोग करके उन कुकीज़ को पढ़ सकता है, हालांकि उस एल्गोरिदम का रिसाव एक दूरस्थ संभावना है क्योंकि इसमें कुछ कुंजी भी शामिल हो सकती है जो केवल ब्राउज़र कोड के लिए जानी जाती है। – RBT

+0

http अनुरोध के कुकी संग्रह में एएसपीनेट सत्र आईडी को संग्रहीत करने के लिए उपयोग की जाने वाली कुंजी का नाम प्राप्त करने के लिए यहां सी # कोड: var aspNetSessionState = new System.Web.Configuration.SessionStateSection(); var aspNetSessionCookieName = aspNetSessionState.CookieName; – RBT

6

दरअसल .एएसएक्सएक्सयूटी कुकी आपको सटीक रूप से प्रमाणित नहीं करती है जब उपयोगकर्ता वास्तव में प्रमाणित होता है। जब उपयोगकर्ता ऐप से लॉग आउट करता है, तो .ASPXAUTH कुकी ब्राउज़र से हटा दी जाती है। हालांकि, अगर आप (प्रपत्र प्रमाणन कुकी के समय समाप्ति के साथ) समय की एक छोटी अवधि के भीतर साइट पर वापस जाना है, और नए ASP.NET_SessionId कुकी के संपादित निम्नलिखित के साथ करता है, तो: "एएसपी से

  • परिवर्तन" नाम "फ़ील्ड .NET_SessionId .ASPXAUTH 24 चार sessionID से वर्ष 448 चार प्रमाणीकरण स्ट्रिंग

को ताज़ा करने के बाद आप तकनीकी रूप से फिर से प्रमाणीकरण के बिना प्रमाणीकृत उपयोगकर्ता की पहचान ग्रहण करने के लिए सक्षम हो जाएगा "

  • परिवर्तन" मूल्य "" से " फिर। (फिर से यह मानते हुए कि आप एएसएक्सएक्सएथ एन्क्रिप्टेड ऑथ स्ट्रिंग के भीतर संग्रहीत विशिष्ट टाइमआउट के भीतर ऐसा करते हैं)

    एक अच्छी blog पोस्ट अधिक जानकारी में समस्या बताती है। एएसपी सत्र के साथ .SPXAUTH को जोड़ना एक संभावित समाधान है।

  • 0

    यदि HTML लॉगिन URL के साथ किसी उपयोगकर्ता के इंटरैक्शन ने TSWPPserver को उपयोगकर्ता की पहचान स्थापित करने की अनुमति दी है, तो दूरस्थ सर्वर को उस कुकी को उत्पन्न करना चाहिए जो उपयोगकर्ता की पहचान करता है और सर्वर को प्रमाणीकरण की अनुमति देता है। कुकी की सामग्री को हस्ताक्षरित और एन्क्रिप्ट किया जाना चाहिए। हस्ताक्षर और एन्क्रिप्शन एल्गोरिदम सहित इस कुकी का विशिष्ट कार्यान्वयन टीएसडब्लूपीपी सर्वर के कार्यान्वयन पर निर्भर है, क्योंकि केवल कुकी को कुकी की सामग्री को पार्स करने की आवश्यकता होती है। यदि सर्वर कुकी लागू करता है, तो कुकी को "एप्लिकेशन/एक्स-एमएसटी-वेबफीड-लॉगिन" के सामग्री-प्रकार के साथ एक HTTP पेलोड में वापस किया जाना चाहिए।

    http://msdn.microsoft.com/en-us/library/ee920427.aspx

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