मैं एक मूल अनुप्रयोग बना रहा हूं और मैं यह पता लगाने की कोशिश कर रहा हूं कि मैं login.php से index.php तक उपयोगकर्ता जानकारी कैसे पास कर सकता हूं। यहां तक कि मुझे अब तक क्या मिला है: मेरे पास एक लॉगिन पृष्ठ है जो उपयोगकर्ता वर्ग के माध्यम से डेटाबेस के माध्यम से उपयोगकर्ता को सबमिट और प्रमाणित करता है। उसके बाद, उपयोगकर्ता गुण डेटाबेस से लौटाए गए मानों पर सेट होते हैं। वहां से आईडी एक सत्र में संग्रहीत है। मैं पृष्ठ से पृष्ठ पर उपयोगकर्ता की जानकारी तक पहुंचने के बारे में कैसे जाउंगा। क्या मुझे बस सत्र आईडी के साथ डेटाबेस से पूछने के लिए एक निर्माण विधि बनाना चाहिए? क्या यह एक सुरक्षित या वैध दृष्टिकोण है? एक उदाहरण ढेर अतिप्रवाह होगा। जिस तरह से आप प्रत्येक पृष्ठ के शीर्ष पर अपना उपयोगकर्ता नाम देख सकते हैं।मैं उन्हें लॉग इन करने के बाद उपयोगकर्ता की जानकारी कैसे प्राप्त कर सकता हूं?
उत्तर
ध्वनि आप की तरह नीचे से निपटने के सत्र के सामान्य विचार है। तो आप बस पूछ रहे हैं कि कौन सी विधि सुरक्षित है, या अनुकूलित या जो भी हो।
सत्र या कुकी जितनी संभव हो उतनी छोटी जानकारी स्टोर करना आम है ताकि आप अपने उपयोगकर्ताओं को सरल मछली पकड़ने की हैक तक नहीं खोल सकें। तो आदर्श रूप से इसका मतलब है कि आपके पास डेटाबेस में एक सत्र तालिका है जिसे आप सत्र आईडी के साथ संदर्भ पार कर सकते हैं।
हां, आप प्रत्येक पृष्ठ लोड पर एक क्वेरी चलाएंगे, लेकिन यह वास्तव में एक मानक साइट पर बहुत अधिक ओवरहेड नहीं है। और यह तब तक असुरक्षित नहीं है जब तक आप अपने इनपुट को सही ढंग से स्वच्छ नहीं करते हैं। यदि उपयोगकर्ता अपनी सत्र जानकारी में हेरफेर करता है तो इस तरह आपको नीचे नहीं लाया जाएगा।
वैकल्पिक रूप से, यदि आप केवल उपयोगकर्ता आईडी और उपयोगकर्ता नाम का उपयोग कर रहे हैं, तो आप सत्र में उन लोगों को सुरक्षित रूप से स्टोर कर सकते हैं और प्रत्येक पृष्ठ लोड पर एक क्वेरी से बच सकते हैं।बस असामान्य रूप से उपयोग की जाने वाली जानकारी से भरे बेहद लंबे सरणी के साथ सत्र या कुकी डेटा भरने के नट्स न जाएं।
+1 में उपयोग करें; सत्र डेटा की सुरक्षा के बारे में अच्छा बिंदु –
@ काई ने मेरे प्रश्न का उत्तर टी, धन्यवाद दिया। – Scott
अपना लॉगिन पृष्ठ में, दुकान उपयोगकर्ता किसी सत्र में डेटाबेस से जानकारी, अन्य पृष्ठों पर, आप उन्हें सीधे
<?php
session_start();
$_SESSION['user'] = $username;
फोन कर सकते हैं और अन्य साइट
<?php
session_start();
$_SESSION['user'];
स्टैक ओवरफ्लो उदाहरण पर वापस जाकर, जब आप अपने प्रोफाइल पेज पर जाते हैं, वहां बहुत सारे डेटा होते हैं: आपके द्वारा दिए गए प्रश्न, आपके द्वारा पूछे जाने वाले प्रश्न आदि .. आप स्पष्ट रूप से सत्र में सभी को स्टोर नहीं करेंगे , तो आप डेटाबेस से उस डेटा को $ _SESSSION ['USER'] और आईडी के साथ कैसे लाएंगे? – Scott
मुझे लगता है कि आपके उपयोगकर्ता के लिए आपकी एसक्यूएल संरचना में प्राथमिक आईडी है, बस $ _SESSION ['id'] में आईडी स्टोर करें और कुछ मूलभूत जानकारी जो प्रत्येक साइट (जैसे उपयोगकर्ता नाम और नाम) पर उपयोग की जाएंगी, यदि आप बाद में करना चाहते हैं कुछ कठिन और विशिष्ट प्रश्नों को प्राप्त करें, बस $ _SESSION ['id'] से आईडी प्राप्त करें और इसे अपने एसक्यूएल क्वेरी –
मैं पर मैं एक मूल अनुप्रयोग का निर्माण कर रहा हूं और मैं यह पता लगाने की कोशिश कर रहा हूं कि मैं login.php से index.php पर उपयोगकर्ता जानकारी कैसे पास कर सकता हूं index.php
एक तरह से PHP सत्र डेटा के रूप में साझा डाटा स्टोर करने के लिए है: http://www.tizag.com/phpT/phpsessions.php
<?php
session_start(); // start the session
$_SESSION['views'] = 1; // store session data
echo "Pageviews = ". $_SESSION['views']; //retrieve data
स्टोर उपयोगकर्ता डेटा आप सभी पृष्ठों के लिए की जरूरत है। आप डीबी में विस्तारित डेटा छोड़ सकते हैं, इसलिए आपको डेटा के एक टन से आगे पूछने की आवश्यकता नहीं है (जैसे कि एसओ पर प्रोफाइल पेज पर आप जो व्यापक आंकड़े देखेंगे)।
फिर आपको प्रत्येक पृष्ठ पर उपयोगकर्ता डेटा को फिर से पूछना नहीं होगा। बस इसे सत्र डेटा से पुनर्प्राप्त करें।
क्या मुझे बस सत्र आईडी के साथ डेटाबेस से पूछने के लिए एक निर्माण विधि बनाना चाहिए? क्या यह एक सुरक्षित या वैध दृष्टिकोण है?
यदि आप सब कुछ के लिए एक ही डीबी खाते का उपयोग कर रहे हैं, तो उपयोगकर्ता तालिका से पूछताछ के बारे में कुछ भी कम सुरक्षित नहीं है। आप किसी भी अन्य प्रश्न की तुलना में किसी भी जोखिम के लिए खुद को बेनकाब नहीं करेंगे।
यदि आप डीबी तक पहुंचने पर सुरक्षा के बारे में चिंतित हैं, तो मेरा सुझाव है कि आप एक ठोस समस्या के बारे में जानें: SQL injection attacks को रोकना।
- 1. मैं एक्सेस वीबीए में वर्तमान में लॉग-इन विंडोज उपयोगकर्ता कैसे प्राप्त कर सकता हूं?
- 2. मैं मॉनिटर जानकारी कैसे प्राप्त कर सकता हूं?
- 3. मैं लॉग इन उपयोगकर्ता को नियंत्रक के बाहर से कैसे एक्सेस कर सकता हूं?
- 4. मैं उपयोगकर्ता नेटवर्क लॉगिन नाम कैसे प्राप्त कर सकता हूं?
- 5. मैं केवल अपवाद लॉग इन करने के लिए एनएलओजी लक्ष्य को कैसे कॉन्फ़िगर कर सकता हूं?
- 6. उपयोगकर्ता की आईडी में लॉग इन करें
- 7. मैं उन्हें आयात करने के बाद __future__ से प्रतीकों को हटा/असमर्थ कैसे कर सकता हूं?
- 8. मैं कैसे सुनिश्चित कर सकता हूं कि उपयोगकर्ता केवल एक बार लॉग इन हो?
- 9. मैं .NET में cpu जानकारी कैसे प्राप्त कर सकता हूं?
- 10. जावास्क्रिप्ट कोड में वर्तमान में लॉग इन किए गए उपयोगकर्ता के टीसीएम यूआरआई को मैं कैसे प्राप्त कर सकता हूं?
- 11. वर्तमान लॉग इन उपयोगकर्ता
- 12. मैं तारों की सरणी कैसे ले सकता हूं और उन्हें फ़िल्टर कर सकता हूं?
- 13. मैं उपयोगकर्ता प्रकार के रूप में JTextField की सामग्री की लंबाई कैसे प्राप्त कर सकता हूं?
- 14. मैं सिस्टम ट्रे में प्रदर्शित करने के लिए अपनी विंडोज सेवा कैसे प्राप्त कर सकता हूं?
- 15. मूडल उपयोगकर्ता में लॉग इन की भूमिका को कैसे ढूंढें
- 16. मैं कैसे मिलता है की वर्तमान में उपयोगकर्ता के लॉग इन ई प्रदर्शन नाम
- 17. मैं अजगर का उपयोग कर वेबसाइट में कैसे लॉग इन कर सकता हूं?
- 18. मैं रीस्टफुल पोस्ट डेटा कैसे लॉग कर सकता हूं?
- 19. मैकॉक्स कैसे प्राप्त करें लॉग-इन उपयोगकर्ता नाम उद्देश्य-सी
- 20. grails में लॉग इन किए गए वर्तमान उपयोगकर्ता की आईडी कैसे प्राप्त करें?
- 21. मैं एंड्रॉइड की ऑडियोट्रैक कक्षा से विलंबता जानकारी कैसे प्राप्त कर सकता हूं?
- 22. पासवर्ड परिवर्तन के बाद उपयोगकर्ता लॉग आउट कर रहे हैं
- 23. मैं इन Django रिकॉर्ड्स को कैसे फ़िल्टर कर सकता हूं?
- 24. मैं उपयोगकर्ता की फेसबुक आईडी को django-allauth के साथ कैसे प्राप्त कर सकता हूं?
- 25. वर्तमान में लॉग इन किए गए उपयोगकर्ता के लिए भूमिकाओं की एक सूची कैसे प्राप्त करें
- 26. क्या होगा यदि उपयोगकर्ता अपने ओपनआईडी के साथ लॉग इन नहीं कर सकता है?
- 27. मैं फ़ायरफ़ॉक्स में * वर्तमान * पृष्ठ के लिए SSL प्रमाणपत्र जानकारी कैसे प्राप्त कर सकता हूं
- 28. मैं प्रोग्राम की स्थिति कैसे प्राप्त कर सकता हूं?
- 29. मैं प्रतिनिधि कैसे प्राप्त कर सकता हूं?
- 30. मैं वेबपृष्ठ की सार्वजनिक कुंजी कैसे प्राप्त कर सकता हूं?
क्यों उपयोगकर्ता जानकारी सत्र में संग्रहीत नहीं करते? –