2013-02-19 8 views
9

Ich habe auf PHP-Datei zum Herstellen der Verbindung mit dem Datenbankserver erstellt. In dieser Datei verwende ich mysql_connect() Funktion mit Parametern Host, Benutzername und Passwort meines Datenbankservers.Wie sichere Datenbankkonfigurationsdatei im Projekt?

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

} 

In diesem Fall sind Benutzername und Passwort für andere sichtbar.

Ich fand einen weiteren Weg, um den Wert, d. H. mysql.default_user und mysql.default_password zu sichern. In welchem ​​Szenario müssen wir diesen Weg gehen?

Oder wie könnte ich meine Werte von anderen sichern?

Antwort

9

Sie können versuchen, Ihre Datenbankanmeldeinformationen in eine separate Datei mit den richtigen UNIX-Berechtigungen zu setzen, z. B. 644, und diese Datei dann über Ihr Skript einfügen.

Die configuration.php Datei wird wie folgt aussehen:

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

Ihr Original-Skript etwas wie folgt aussehen:

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

nur verwendet Kopieren und Einfügen auf Ihrer Konfigurationsdatei-Spezifikation (mir die Schuld ;-)) . Musste Zitate um Variablennamen hinzufügen, damit es funktioniert. – LSA

+0

'get_defined_constants()' kann sie leicht bösen Entwicklern aussetzen. –

5

In diesem Fall sind Benutzername und Passwort für andere sichtbar.

Nur für diejenigen, die Zugriff auf Ihren Quellcode haben. Dies sollte kein Problem sein. Wenn Sie jedoch Code- und Datenbankanmeldeinformationen trennen möchten, stellen Sie sicher, dass sich die Konfigurationsdatei außerhalb des Webstamms befindet.