2011-05-11 16 views
5

में डेटाबेस लॉगिन जानकारी छुपाएं वेब प्रोग्रामिंग में कुल शुरुआतकर्ता है। मैं एक साधारण वेबसाइट बनाने की कोशिश कर रहा हूं जो SQL डेटाबेस से डेटा पढ़ रहा है। सबसे पहले मैं सिर्फ php कोड में सीधे मेरी डेटाबेस पासवर्ड और प्रवेश लिखा है:PHP कोड

<?php 
$username = "login"; 
$password = "pw"; 
mysql_connect("server", $username, $password); 
... 
?> 

यह स्पष्ट रूप से एक बहुत अच्छा विचार नहीं है! तो ऐसा करने के लिए एक (अधिक) अधिक "सुरक्षित" तरीका क्या है? मैंने PHP कोड को एक अलग फ़ाइल में डालने के बारे में पढ़ा है, जिसका अर्थ है वेबसाइट के मुख्य PHP दस्तावेज़ में नहीं, और फिर उस फ़ाइल तक पहुंच प्रतिबंधित करना। शायद एक .htaccess फ़ाइल द्वारा। क्या यह जाने का रास्ता है?

+0

यह एक अच्छा विचार क्यों नहीं होना चाहिए? यदि आप क्रेडेंशियल्स को प्रतिबिंबित नहीं करते हैं तो कोई भी उन्हें देख सकता है अगर उसे आपके वेबसर्वर तक पहुंच प्राप्त नहीं होती है। – Tim

+3

अच्छा सवाल है, लेकिन पहले से ही पूछा गया है! कोई * अधिक * अधिक सुरक्षित तरीका नहीं है। यहां एक डुप्लिकेट है: [PHP में डेटाबेस पासवर्ड कैसे सुरक्षित करें?] (Http://stackoverflow.com/q/97984) –

+0

आपकी राय में इस दृष्टिकोण के साथ क्या गलत है? – Gumbo

उत्तर

5

config.php फ़ाइल और .htaccess एक क्लासिक/अच्छा जाने का रास्ता है। यह आमतौर पर सीएमएस या ढांचे के साथ किया जाता है।

JohnP द्वारा बताया रूप में, आप भी सार्वजनिक निर्देशिका की config.phpबाहर, इसका मतलब है कि यह HTTP के द्वारा पहुँचा नहीं जा सकता स्टोर कर सकते हैं। सुरक्षा के लिए यह केवल थोड़ा बेहतर है (यदि आप अपने .htaccess के साथ कोई गलती नहीं करते हैं, तो कोई और जोखिम नहीं है)।

फ़ाइल संरचना उदाहरण:

  • config/ -> विन्यास फाइल
  • lib/ -> पुस्तकालयों और utils पीएचपी फ़ाइलें
  • public/ -> आप सभी सार्वजनिक पृष्ठों/फ़ाइलें/छवियों ...
public/ को

इस तरह, http://www.your-site.com/ अंक, इसलिए वहाँ config तक पहुँचने के लिए कोई रास्ता नहीं है। लेकिन इस समाधान का तात्पर्य है कि आप मूल वेब निर्देशिका को बदल सकते हैं (या यह पहले से ही ऐसा है)।

अंत में, आप इस फाइल को स्थापित करने के लिए याद करने के लिए है पठनीय और अपाचे उपयोगकर्ता केवल, हर कोई (यूनिक्स फ़ाइल अधिकारों का उपयोग) है, ताकि किसी को किसी अन्य उपयोगकर्ता के माध्यम से आप सर्वर तक पहुँचने में है, वह कर सकते हैं 'द्वारा लिखने योग्य फ़ाइल को नहीं पढ़ा।

1

आप सामान्य रूप से एक विन्यास फाइल में इस डाल दिया और आप PHP के माध्यम से कॉन्फ़िगरेशन मान का उपयोग।

आमतौर पर एक प्रोजेक्ट आयोजित किया जाता है जैसे कि आपका एप्लिकेशन कोड और आपका कॉन्फ़िगरेशन कोड आपके वेबूट के बाहर है और केवल आपके सार्वजनिक संसाधन (index.php, छवियां, स्क्रिप्ट या अन्य संसाधन) सीधे पहुंच के माध्यम से उपलब्ध हैं।

+0

यदि आपके पास स्रोत कोड तक पहुंच है तो आपके पास शायद कॉन्फ़िगरेशन फ़ाइल तक पहुंच हो, यह कॉन्फ़िगरेशन प्रबंधन के मामले में अच्छी प्रैक्टिस हो सकती है - लेकिन यह और अधिक सुरक्षित नहीं है! –

+1

@ जेम्स एंडरसन सबसे निश्चित रूप से। मैं यह नहीं कह रहा था कि वह अब क्या कर रहा था उससे कहीं अधिक सुरक्षित था। चीजों को ढूढ़ने के तरीके के बारे में यह एक दिशानिर्देश था – JohnP