कुकी हमेशा एक यादृच्छिक मूल्य होना चाहिए जो समाप्त हो जाती है। ऐसे मामले हैं जहां आप एक कुकी मूल्य के रूप में राज्य को स्टोर कर सकते हैं और यह एक सुरक्षित खतरे नहीं है, जैसे उपयोगकर्ता पसंदीदा भाषा, लेकिन इसे जितना संभव हो से बचा जाना चाहिए। HttpOnlyCookies चालू करना, एक अच्छा विचार है।
ए 3 पढ़ें: OWASP top 10 for 2010 में "टूटा प्रमाणीकरण और सत्र प्रबंधन"। इस खंड में एक महत्वपूर्ण बिंदु यह है कि https पूरे सत्र के लिए उपयोग किया जाना चाहिए। यदि सत्र बहुत लंबे समय तक चल रहा है, तो यह और भी महत्वपूर्ण है।
यह भी ध्यान रखें कि "मुझे याद रखें" एक बड़ी खिड़की बनाता है जिसमें एक हमलावर सत्र पर "सवारी" कर सकता है। यह हमलावर को बहुत लंबा समय देता है (महीनों?) जिसमें वह एक सीएसआरएफ हमला कर सकता है। यहां तक कि यदि आपके पास सीएसआरएफ सुरक्षा है तो भी हमलावर XSS और XmlHttpRequest (HttpOnlyCookies एक पूर्ण अपहरण को रोक देगा) के साथ एक सत्र पर सवारी कर सकता है। "मुझे याद रखें" xss, csrf जैसे अन्य खतरों को और अधिक गंभीर बनाता है। जब तक इन भेद्यता को संबोधित किया गया है, तब तक आपको असली दुनिया हैकर्स के साथ कोई समस्या नहीं होनी चाहिए।
सबसे आसान (और सुरक्षित) दृष्टिकोण को लागू करने के लिए एक "मुझे याद रखें" सुविधा सत्र टाइमआउट अपने web.config फ़ाइल को संशोधित करने के लिए होगा:
<configuration>
<system.web>
<sessionState timeout="60"/>
</sessionState>
</system.web>
</configuration>
से कुछ करने के लिए समय समाप्ति उच्च, शायद एक महीने या इसलिए। यदि "मुझे याद रखें" चेकबॉक्स अनचेक किया गया है तो अधिक सामान्य टाइमआउट (जैसे 24 घंटे) के सत्र चर को स्टोर करें। प्रत्येक अनुरोध के लिए हेडर फ़ाइल में इस सत्र चर को जांचें। यदि चेकबॉक्स चेक किया गया है, तो सामान्य रूप से कार्य करें और एएसपीनेट को इसकी देखभाल करने दें।
यदि सत्र समाप्त नहीं होता है तो बल को बल देना बहुत आसान होगा। ये मान बड़े हैं, लेकिन एक हैकर को सत्र आईडी अनुमान लगाने का प्रयास करने में वर्षों का खर्च करने की अनुमति देना एक भेद्यता है।
ग्रेट उत्तर। एकमात्र चीज जो मैं जोड़ूंगा वह एक्सएसएस और सीएसआरएफ को रोकने के लिए सावधानी बरतती है। यदि आपके पास दीर्घकालिक सत्र हैं तो ये दोनों मुद्दे महत्वपूर्ण हो जाते हैं। –
@ श्रीम मैं पूरी तरह से आपसे सहमत हूं। (+1) – rook