Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

क्यों mysqli_connect () को बिना एन्क्रिप्शन के पासवर्ड पैरामीटर प्राप्त करना चाहिए?

आप एक उपयोगकर्ता के रूप में नहीं जानते कि पासवर्ड कैसे एन्क्रिप्ट किया गया है (यह वास्तव में एन्क्रिप्टेड नहीं है, लेकिन हैश किया गया है)।

आप बस पासवर्ड पास करते हैं, और MySQL मूल पासवर्ड की तरह ही हैशिंग कर सकता है और इसकी तुलना संग्रहीत की गई चीज़ों से कर सकता है। यदि आप हैश किए गए संस्करण को पास करते हैं, तो हैशिंग का पूरा लाभ समाप्त हो जाता है:यदि किसी को सर्वर से हैश मिलता है, तो वे लॉग इन करने के लिए उनका उपयोग कर सकते हैं जैसे कि वे सामान्य पासवर्ड थे। हैश तब पासवर्ड बन गया है।

अतिरिक्त लाभ यह है कि MySQL, क्योंकि इसका मूल पासवर्ड है, इसे बेहतर एल्गोरिदम के साथ फिर से हैश कर सकता है, थोड़ा सा नमक जोड़ सकता है और उस बेहतर संस्करण को स्टोर कर सकता है। अगर इसे मूल कभी नहीं मिलता है, तो ऐसा नहीं किया जा सकता है। PHP का पासवर्ड कार्य करता है इसका भी समर्थन करें। आप password_needs_rehash . से जांच सकते हैं यदि हैशेड पासवर्ड अभी भी ठीक से हैश किया गया है, और यदि नहीं है तो अपने डेटाबेस को अपडेट करें।

इसलिए सुरक्षा के लिए आपको अन्य उपाय करने होंगे। ये कम से कम हैं:

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. HTML <क्षेत्र> टैग की पृष्ठभूमि का रंग बदलें

  2. DISTINCT को MySQL में पहले क्यों जाना है?

  3. JSON jparser पर ऐप क्रैश http अनुरोध करें

  4. ऑपरेशनल एरर:(1045, उपयोगकर्ता 'राजेंद्र' @ 'लोकलहोस्ट' के लिए एक्सेस अस्वीकृत (पासवर्ड का उपयोग करके:नहीं))

  5. MySQL क्वेरी विशिष्ट टैग संयोजनों के आधार पर पंक्तियों को लाने पर अवांछित पंक्तियाँ लौटाती है