"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > PHP में केवल-सदस्यीय पेज लॉगिन सिस्टम को सुरक्षित रूप से कैसे कार्यान्वित करें?

PHP में केवल-सदस्यीय पेज लॉगिन सिस्टम को सुरक्षित रूप से कैसे कार्यान्वित करें?

2024-11-17 को प्रकाशित
ब्राउज़ करें:459

How to Securely Implement a Member-Only Page Login System in PHP?

PHP: लॉगिन सिस्टम के साथ सुरक्षित सदस्य-केवल पेज

प्रदान किए गए कोड के साथ चुनौतियां

प्रदान किया गया PHP कोड कई मुद्दों का सामना करता है जो इसमें बाधा डालते हैं कार्यक्षमता:

  1. क्वेरी परिणामों की पुनर्प्राप्ति: $data1 = $conn->query($sql1); का उपयोग करने के बजाय, सही दृष्टिकोण $data = mysqli_fetch_array( का उपयोग करना है $conn->क्वेरी($sql1)); या $data = $conn->query($sql1)->fetch_array(); क्वेरी परिणाम लाने के लिए।
  2. डेटाबेस कनेक्शन और निष्पादन: डेटाबेस से कनेक्शन $total = $data = 0 का उपयोग करके स्थापित किया जाना चाहिए; किसी भी प्रश्न को निष्पादित करने से पहले। )`) एकल उद्धरण के बजाय। sql3)->fetch_array();).
  3. टोकन जनरेशन: मौजूदा टोकन जेनरेशन विधि सुरक्षित नहीं है क्योंकि यह openingsl_random_pseudo_bytes() का उपयोग करती है। इसके बजाय, कोड को क्रिप्टोग्राफ़िक रूप से सुरक्षित यादृच्छिक संख्या जनरेटर (सीएसपीआरएनजी) जैसे रैंडम_बाइट्स() का उपयोग करना चाहिए।
  4. प्रस्तावित समाधान
  5. डेटाबेस संचालन को सरल बनाएं: उपयोगकर्ता की जानकारी प्राप्त करने और क्रेडेंशियल्स की जांच करने के लिए एकल क्वेरी का उपयोग करें। ]: सुरक्षित टोकन जनरेशन के लिए रैंडम_बाइट्स() या समान फ़ंक्शन को नियोजित करें।

सत्र में प्रमाणीकरण डेटा संग्रहीत करें

: प्रमाणीकरण टोकन को कुकी के बजाय एक सत्र चर में सहेजें।
  1. मान्य टोकन: दिए गए टोकन को मान्य करने के लिए टोकन तालिका के विरुद्ध एक डेटाबेस क्वेरी निष्पादित करें।
  2. बेहतर कोड
  3. निम्नलिखित संशोधित कोड पहचाने गए मुद्दों को संबोधित करता है और एक अधिक सुरक्षित केवल सदस्य पृष्ठ लॉगिन प्रणाली प्रदान करता है:
  4. connect_error) { मरो ("कनेक्शन विफल:"। $conn->connect_error); } // उपयोगकर्ता प्रमाणीकरण के लिए विवरण तैयार करें $sql_auth = $conn->तैयार करें ("उन उपयोगकर्ताओं से चुनें * जहां उपयोगकर्ता नाम = ? और पासवर्ड =?"); $sql_auth->bind_param("ss", $_POST['uname'], $_POST['pss']); $sql_auth->निष्पादित(); $result_auth = $sql_auth->get_result(); // उपयोगकर्ता को प्रमाणित करें अगर ($result_auth->num_rows > 0) { $user = $result_auth->fetch_assoc(); $सही = सत्य; } अन्य { $सही = असत्य; } // टोकन जनरेट करें यदि ($सही === सत्य) { $हेक्स = बिन2हेक्स(रैंडम_बाइट्स(3)); $_SESSION['auth'] = $hex; $_सत्र['लॉगस्टैट'] = सत्य; } // कनेक्शन बंद करें $conn->बंद करें(); ?>
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3