2011-02-15 18 views
7

मैं सोच रहा हूं कि आप सत्रों की सर्वोत्तम रक्षा कैसे कर सकते हैं। मैंने थोड़ी सी खोज की है और बहुत सारे जवाब मिलते हैं, लेकिन उनमें से कई बहुत भ्रमित हैं।सत्र टोकन - यह कैसे काम करता है?

सत्रों को अपहृत होने से कैसे रोकें? मैंने आपके द्वारा एक रूप में उत्पन्न "सत्र टोकन" के बारे में बहुत कुछ पढ़ा है, लेकिन वास्तव में यह समझ में नहीं आता कि उनका उपयोग क्या है। यह सत्र अपहरण को कैसे रोकता है?

मुझे पता है तुम सत्र में पासवर्ड जैसी चीजों को बचाने नहीं है, लेकिन क्या आप सुरक्षित रूप से उन में स्टोर कर सकते हैं? अनुमतियां (जैसे एक सत्र वेरिएबल जो उपयोगकर्ता स्तर का ट्रैक रखता है। हर बार जब कोई पृष्ठ खोला जाता है, सत्र भिन्नता की जांच की जाती है। यह एक निश्चित संख्या नहीं है, आपको "पहुंच-अस्वीकार" संदेश प्रदर्शित होता है)? या आप इसे सर्वश्रेष्ठ कैसे संभालेंगे?

धन्यवाद!

+0

संभावित डुप्लिकेट [PHP सेसन हाइजैक को रोकें, ये अच्छे विचार हैं?] (Http://stackoverflow.com/questions/2917177/prevent-php-sesison-hijack-are-these-good-ideas) – Stephen

उत्तर

7

आप मूल रूप से उस सत्र में कुछ भी स्टोर कर सकते हैं, जिसे आप चाहते हैं, इसे केवल "सर्वश्रेष्ठ" अभ्यास माना जाता है, जिसमें सुरक्षा की एक परत समझौता होने पर किसी भी सुरक्षा संवेदनशील जानकारी, जैसे कि पासवर्ड शामिल नहीं है।

सत्र अपहरण को रोकने के लिए पहले कदम के यूआरएल के माध्यम से अपने session_id() पास नहीं है। उपयोगकर्ता बेवकूफ हैं, और वे अपने ब्लॉग पर उनके सत्र आईडी के साथ लिंक पोस्ट करेंगे, जो मूल रूप से जो भी उस लिंक को उनके सत्र तक पहुंच पर क्लिक करेगा। इसलिए, उपयोगकर्ताओं की कुकी में अपनी सत्र आईडी को स्टोर करने की अनुशंसा की जाती है।

इसके साथ ही कहा, आप फ़िल्टर और अपने सभी उपयोगकर्ता इनपुट से बचने के लिए चाहते हैं। यदि आपके पास XSS इंजेक्शन है, और उपयोगकर्ता जावास्क्रिप्ट इंजेक्ट करने में सक्षम है, तो वे बिना किसी समस्या के आपकी कुकीज़ को पढ़ने में सक्षम होंगे।

वहां से, आप आम तौर पर session fixation को रोकने के लिए अपनी वेबसाइट पर किसी भी प्रमुख कार्रवाई पर regenerate_session_id() को पुन: उत्पन्न करना चाहते हैं।

यह बहुत आसान है, और यह इसके बारे में बताता है।

+0

हाय, जवाब देने के लिए धन्यवाद। मैं अभी सत्र निर्धारण के बारे में कुछ और पढ़ रहा हूं। लेकिन सत्र टोकन के बारे में मैं अक्सर क्या पढ़ता हूं? क्या इसकी आवश्यकता नहीं है? – Bv202

+0

शायद आप सीएसआरएफ का जिक्र करते हैं (http://shiflett.org/articles/cross-site-request-forgeries देखें) जिसमें वास्तव में सत्र अपहरण के साथ कुछ भी नहीं है। –

+0

सही PHP फ़ंक्शन नाम session_regenerate_id() है – Heitor

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