दिलचस्प पोस्ट
जावास्क्रिप्ट में HTML संस्थाओं को एन्कोड करें पायथन बेस 64 डेटा डीकोड सी # में किसी फ़ंक्शन से मैं कई मान कैसे वापस कर सकता हूं? आपको स्पष्ट रूप से सुपरक्लास कंस्ट्रक्टर कहने की आवश्यकता कब है? मल्टी-लाइन कमांड के लिए लाइन टिप्पणी कैसे करें स्विफ्ट जेनेरिक जबरन गलतफहमी सेट इन्टेरॉल के पायथन समरूप ()? सब डोमेन में PHP सत्र सीएसएस में = "ईमेल" के लिए लेबल का चयन कैसे करें? मैं साइट स्क्रैपिंग को कैसे रोकूं? क्रोम कास्ट एक्सटेंशन स्थापित नहीं है या गुप्त का उपयोग करते हुए Google क्रोम डास्ट प्रेषक त्रुटि क्या आप अजगर में क्लास को इन्स्तांत करने के लिए स्ट्रिंग का उपयोग कर सकते हैं? क्या मैं सी # में Outlook (2003/2007) पीएसटी फ़ाइल पढ़ सकता हूं? सी # प्रॉक्सी के माध्यम से कनेक्ट करना आप ember.js के लिए एक कस्टम एडेप्टर कैसे बनाते हैं?

PHP सत्र अपहरण

PHP में सत्र अपहरण के संबंध में मेरे पास एक सवाल है मैं आज सुबह इसके बारे में पढ़ रहा हूं और मेरे पास कुछ सवाल हैं जो मैंने पढ़े गए दस्तावेजों में स्पष्ट रूप से उत्तर नहीं दिया था।

क्या कोई उपयोगकर्ता अपनी वेबसाइट पर अपना सत्र बदल सकता है? यानी अगर उनके पास प्रवेश के समय एक्स का सत्र होता है, तो क्या वे उस सत्र को वाई, या जेड में बदल सकते हैं, यदि वे ऐसा चुनते हैं?

मैंने सोचा था कि सत्रों को ब्राउज़र द्वारा निर्धारित किया गया था और उन्हें बदला नहीं जा सका, परन्तु इस सब सत्र को अपहरण करने वाले सामान को पढ़ने के बाद मेरे मन में कुछ संदेह हो गया है

वेब के समाधान से एकत्रित समाधान "PHP सत्र अपहरण"

शब्द "सत्र" ओवरलोड किया जाता है जिसका मतलब है कि सर्वर पर और ब्राउज़र में अलग चीजें हैं। ब्राउज़र सत्र सर्वश्रेष्ठ सत्र सत्र से जुड़ते हैं। "सत्र अपहरण" का अर्थ सर्वर सत्रों को दर्शाता है

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

एक सत्र की सामग्री (यानी किसी उपयोगकर्ता की लॉगिन अवस्था वाली) को ग्राहक द्वारा बदला नहीं जा सकता, डेटा सर्वर पर संग्रहीत होता है और उस सर्वर पर केवल PHP स्क्रिप्ट पर ही बदला जा सकता है। ध्यान दें कि साझा-होस्टिंग वातावरण में (अन्य सेवाओं या उपयोगकर्ताओं द्वारा साझा किया गया), डिफ़ॉल्ट सत्र संग्रहण निर्देशिका ( /tmp ) का उपयोग करते हुए सत्रों को ओवरराइट किया जा सकता है इसके विरुद्ध सुरक्षा करने के लिए, या तो session_set_save_handler() माध्यम से डेटाबेस का उपयोग करें या उचित निर्देशिका अनुमतियों के साथ session.save_path का उपयोग करके एक कस्टम सत्र निर्देशिका सेट करें (अधिमानतः 700 जिसका अर्थ है कि केवल स्वामी (PHP उपयोगकर्ता) इसे पढ़ और लिख सकता है) ।

सत्र के अपहरण के विरुद्ध सुरक्षा के लिए, आपके पास सत्र के खिलाफ उपयोगकर्ता की पहचान करने के अन्य तरीके होने चाहिए। यह एक उपयोगकर्ता एजेंट, आईपी पता या अन्य कुकी हो सकता है। पहले उल्लिखित विधियां केवल कार्यपद्धति हैं, सत्र कुकी को चोरी करने से बचाने के लिए सबसे अच्छा तरीका एचटीटीपीएस का उपयोग कर यदि कोई सत्र शामिल है। httponly का उपयोग करते हुए httponly ध्वज को true करने के लिए मत भूलना session_set_cookie_params()

क्लाइंट-साइड, "सत्र" फिर से अतिभारित और विभिन्न संदर्भों में उपयोग किया जाता है (उदाहरण सत्र प्रबंधक, जो एक ब्राउज़र खोले गए पृष्ठों को खोलते हैं, सत्र कुकीज और sessionStorage )। एक ब्राउज़र सत्र में विचारों का संग्रह और उनके संबंधित डेटा शामिल हैं, यह कहकर हम इन अर्थों को गठबंधन करने की कोशिश कर सकते हैं (जो कि किसी मानक से नहीं है)। ("दृश्य" से मेरा मतलब है टैब-डाउन ब्राउज़र्स और विंडो में गैर-टैब वाले ब्राउज़रों में लगभग टैब; DOM window ऑब्जेक्ट जेएस को देखने का पर्दाफाश करता है।) प्रत्येक दृश्य का इतिहास, एक वर्तमान पृष्ठ और पृष्ठ डेटा है। उसी डोमेन के पृष्ठों के लिए पृष्ठ डेटा एक सत्र में दृश्यों के बीच साझा किया जाता है; यदि दो पृष्ठ भिन्न डोमेन या भिन्न सत्रों में हैं, तो वे डेटा साझा नहीं करते हैं। ब्राउज़र को छोड़ने से सभी खुले सत्र (सत्रों) को बंद हो जाता है, संभवतया सत्र (सत्रों) का हिस्सा बचा रहता है (जैसे इतिहास, वर्तमान पृष्ठ, sessionStorage ) ताकि सत्र प्रबंधक उन्हें पुनः खोल सकें। सत्र कुकीज कुकीज़ है जो एक सत्र बंद होने पर त्याग दिए जाते हैं; दूसरे शब्दों में, सत्र कुकीज गैर-स्थायी हैं हालांकि एक सत्र कुकी एक सत्र आईडी रख सकती है, दो अवधारणाएं ऑर्थोगोनल हैं (अर्थ 4; सत्र कुकीज़ सत्र आईडी के अलावा अन्य चीजें रख सकती हैं, और सत्र आईडी को लगातार कुकी में संग्रहीत किया जा सकता है)

चाहे दो अलग अलग दृश्य एक ही संग्रह में हैं ब्राउज़र पर निर्भर करता है। उदाहरण के लिए, एक ब्राउज़र एक विंडो में सभी टैब को शामिल करने के लिए सत्र पर विचार कर सकता है; अलग खिड़कियां अलग सत्र हैं IE8 उपयोगकर्ताओं को "नया सत्र" मेनू आइटम के माध्यम से नया सत्र बनाने देता है अन्यथा, एक ही सत्र में नई विंडो और टैब खुलता है। गोपनीयता मोड भी नए सत्र बनाते हैं

संक्षेप में, ब्राउज़र सत्र वास्तव में ब्राउज़र द्वारा निर्धारित किए जाते हैं, यद्यपि यह उपयोगकर्ताओं को ब्राउज़र सत्रों को नियंत्रित करने के विभिन्न माध्यम प्रदान करता है: सत्रों को ब्राउज़िंग, सहेजने और पुनर्स्थापना करके एक नया दृश्य बनाकर, इतिहास और वर्तमान पृष्ठ को बदलना उपयोगकर्ता भी डिस्क पर सहेजे गए संपादन सत्रों के माध्यम से सत्र डेटा को बदल सकता है, हालांकि यह ब्राउज़र द्वारा प्रदान की जाने वाली सुविधा नहीं है। इनमें से कोई भी सत्र अपहरण के साथ कुछ भी नहीं है। सर्वर सत्र सर्वर द्वारा बनाए गए और प्रबंधित किए जाते हैं, लेकिन उपयोगकर्ता अपने ब्राउज़र को सर्वर पर वापस सत्र आईडी बदलकर सर्वर सत्रों को स्विच कर सकते हैं, जो कि सत्र अपहर्ताओं का आधार है।

पीएचपी सत्र निर्धारण / अपहरण भी देखें।

एक उपयोगकर्ता अपने सत्र को किसी भी समय बदल सकता है यह उपयोगकर्ता ब्राउज़र में कुकी में संग्रहीत एक यादृच्छिक स्ट्रिंग है, और इसलिए उपयोगकर्ता इसे बदलने के लिए बहुत सरल है।

जैसा कि सत्र की वास्तविक सामग्री आपके सर्वर पर संग्रहीत होती है, उदाहरण के लिए आप उपयोगकर्ता के आईपी पता, उपयोगकर्ता एजेंट को स्टोर कर सकते हैं या इसी तरह की जांच कर सकते हैं कि यह जानकारी हर बार एक नई http अनुरोध किया जाता है