दिलचस्प पोस्ट
WIN32_Processor :: सभी कंप्यूटरों के लिए प्रोसेसरआईडी अद्वितीय है कास्टिंग और रूपांतरण के बीच अंतर क्या है? मिलान करने वाले फ़ंक्शन पॉइंटर को कॉल करने के लिए एक ट्यूपल को "अनपॅक करना" बनाम क्लिक विधियों पर jquery टुकड़ों के साथ नेविगेशन के ऊपर कार्रवाईबार बच्चे डेमंस के साथ पर्ल डेमोलेज़ करें मैं Stemming या Lemmatization शब्द कैसे करूं? जावा 8 समांतर स्ट्रीम में कस्टम थ्रेड पूल एंड्रॉइड में वैश्विक असंतुलित अपवाद हैंडलर सेट करने का आदर्श तरीका क्यों कई मूल्यों के खिलाफ एक चर की गैर-समानता जांच हमेशा सही देता है? एक अनियमित ग्रिड पर समरूप बनाना क्या मुझे डोमेन परत से सत्यापन ढांचा का सार होना चाहिए? निर्माता प्रारंभिक सूची में निष्पादन के आदेश नियमित ES6 वर्ग विधियों से स्थिर तरीके कॉल करें फिक्स्ड अटैचमेंट पृष्ठभूमि इमेज फ़्लिकर / क्रोम में गायब हो जाता है जब सीएसएस ट्रांस्फ़ॉर्म के साथ युग्मित किया जाता है

PHP सत्र चर कैसे सुरक्षित है?

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

धन्यवाद।

वेब के समाधान से एकत्रित समाधान "PHP सत्र चर कैसे सुरक्षित है?"

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

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

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

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

आपके द्वारा उपयोग की जा रही प्रणाली के लिए, यह स्वीकार्य है और यह डेटाबेस कॉल को सहेजने का एक अच्छा तरीका है, लेकिन ध्यान रखें कि प्रयोक्ता को लागू करने के लिए किसी भी प्राधिकरण परिवर्तन के लिए लॉग आउट और लॉग इन करने की आवश्यकता होगी। इसलिए यदि आप कोई खाता बंद करना चाहते हैं और वह उपयोगकर्ता पहले ही लॉग इन है, तो आप ऐसा नहीं कर सकते।

यह ध्यान दिया जाना चाहिए कि अपाचे में PHP $ _SESSION सुपरग्लोबल वर्चुअलहोस्ट्स पर पहुंच योग्य है। इस परिदृश्य पर विचार करें:

  • आपका सर्वर दो डोमेन होस्ट करता है, example.com और example.org। PHP सत्र डोमेन में प्रतिबंधित हैं जो कुकीज़ में संग्रहीत हैं।
  • एक उपयोगकर्ता example.com में लॉग करता है और एक सत्र आईडी प्राप्त करता है Example.com कुछ सत्र चर सेट करता है (जो सर्वर पर संग्रहीत होता है, न कि कुकी में)
  • एक तृतीय पक्ष ट्रांसमिशन के दौरान कुकी को रोकता है और यह उदाहरण.org को भेजता है। Instance.org अब example.com सत्र चर तक पहुँच है

यह इतना बड़ा सौदा नहीं है जब आप अपने सर्वर पर सभी वर्चुअलहोस्ट को नियंत्रित करते हैं, लेकिन अगर आप किसी साझा मशीन पर हैं, तो यह समस्याग्रस्त है।

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

जहां तक ​​'सुरक्षा' जाती है – जब तक आप साझा मेजबान पर नहीं होते, तब भी चिंता करने की कोई बात नहीं है ठीक से कॉन्फ़िगर साझा किए गए होस्ट पर, उन्हें अपेक्षाकृत सुरक्षित होना चाहिए, भी।