2012-10-30 14 views
5

हमारे पास हमारी साइट के विरुद्ध सुरक्षा परीक्षण है, और एक भेद्यता की पहचान की गई है।सर्वर पर सत्र पहचानकर्ता को समाप्त करें

अंक

तो सत्र पहचानकर्ता करने वाले किसी हमलावर के लिए उपयोगकर्ता के कार्य केंद्र जाने की अनुमति थी द्वारा जाने जाते थे, लॉग आउट सत्र सत्र कुकी का उपयोग करके पहुँचा जा सकता है के बाद उपयोगकर्ता अपने सत्र समाप्त किया था ।

सिफ़ारिश

कि सत्र पहचानकर्ता सही ढंग से सर्वर पक्ष पर समाप्त कर दिया जाता है जब लॉगआउट समारोह शुरू हो जाती है सुनिश्चित करें।

कोड

कोड वर्तमान में करता है यह

 FormsAuthentication.SignOut(); 
     Roles.DeleteCookie(); 
     Session.Clear(); 

मैं "नहीं, इसकी जांच सुनिश्चित करना है कि सत्र पहचानकर्ता हैं यकीन नहीं है (यदि कोई उपयोगकर्ता" लॉगआउट बटन "पर क्लिक करना है तो) जब लॉगआउट फ़ंक्शन लागू होता है तो सर्वर पक्ष पर सही ढंग से समाप्त हो जाता है। "

मैंने कुछ शोध किया है और मुझे लगता है कि मुझे इसके बजाय ऐसा करना चाहिए?

 Session.Abandon(); 

यदि नहीं, तो मुझे क्या करना चाहिए? (मुझे पूरी तरह से यह सुनिश्चित नहीं है कि इसका परीक्षण कैसे करें ...)

उत्तर

6

एएसपीनेट Session.Abandon() इस कार्य के लिए पर्याप्त नहीं है, यह उपयोगकर्ता के ब्राउज़र से सत्र आईडी कुकी को नहीं हटाता है, इसलिए किसी भी नए अनुरोध सत्र छोड़ने के बाद, एक ही आवेदन, उसी सत्र आईडी और एक नया सत्र राज्य उदाहरण का उपयोग करेगा! As Microsoft states here। अपने web.config फ़ाइल में

Session.Abandon(); 
Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", "")); 

यह भी प्रपत्र प्रमाणीकरण कुकी नाम बदलने के लिए एक अच्छा अभ्यास है::

<authentication mode="Forms"> 
    <forms name=".CookieName" loginUrl="LoginPage.aspx" /> 
</authentication> 

यहाँ एक अच्छा लेख है आप सत्र और स्पष्ट सत्र ID कुकी का परित्याग करने की जरूरत है Session Attacks and ASP.NET पर और इसे हल करने के लिए कैसे करें।

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