2013-02-19 18 views
9

मैंने डेटाबेस सर्वर के साथ कनेक्शन स्थापित करने के लिए PHP फ़ाइल पर बनाया है। इस फ़ाइल में, मैं अपने डेटाबेस सर्वर के पैरामीटर होस्ट, उपयोगकर्ता नाम और पासवर्ड के साथ mysql_connect() फ़ंक्शन का उपयोग कर रहा हूं।प्रोजेक्ट में डेटाबेस कॉन्फ़िगरेशन फ़ाइल को कैसे सुरक्षित करें?

public class DatabaseConnect 
{ 
function __construct() 
{ 
    mysql_connect('localhost','username','password') or die('Could not connect to mysql server.'); 
    mysql_select_db('databasename'); 
} 

} 

अब इस मामले में, उपयोगकर्ता नाम और पासवर्ड दूसरों के लिए दृश्यमान हैं।

मुझे मूल्य i.e. mysql.default_user और mysql.default_password को सुरक्षित करने के लिए एक और तरीका मिला। किस परिदृश्य में हमें इस तरह से करना है?

या मैं दूसरों से अपने मूल्य कैसे सुरक्षित कर सकता हूं?

उत्तर

9

आप अपने डेटाबेस प्रमाण-पत्रों को उचित फ़ाइल में उचित यूनिक्स अनुमति सेट के साथ रखने का प्रयास कर सकते हैं, उदाहरण के लिए 644, और फिर इस फ़ाइल को अपनी स्क्रिप्ट के शीर्ष पर शामिल करें।

<?php 
define (DB_USER, "mysql_user"); 
define (DB_PASSWORD, "mysql_password"); 
define (DB_DATABASE, "database_name"); 
define (DB_HOST, "localhost"); 
?> 

आपका मूल स्क्रिप्ट कुछ इस तरह दिखेगा::

configuration.php फ़ाइल की तरह दिखाई देगा

require ("configuration.php"); 
public class DatabaseConnect 
{ 
function __construct() 
{ 
    mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die('Could not connect to MySQL server.'); 
    mysql_select_db(DB_DATABASE); 
} 

} 
+0

बस का इस्तेमाल किया कॉपी और अपने कॉन्फ़िग फ़ाइल विनिर्देश पर पेस्ट (मुझे दोष ;-)) । इसे काम करने के लिए चर नामों के चारों ओर उद्धरण जोड़ना पड़ा। – LSA

+0

'get_defined_constants() 'उन्हें आसानी से दुष्ट डेवलपर्स के सामने उजागर कर सकता है। –

5

अब इस मामले में, उपयोगकर्ता नाम और पासवर्ड दूसरों के लिए दृश्यमान हैं।

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

संबंधित मुद्दे