Dove si inseriscono le impostazioni di connessione per una connessione al database (cose come host, dbname, user, password)? È collocato nella classe o nel file del database o all'esterno in un file di configurazione o altrove?Dove inserire le impostazioni di connessione del database?
risposta
Può essere fatto in molti modi, ma ciò che è comune è metterlo in un file di impostazioni, e mantenere quel file al di fuori del webroot, in modo che le informazioni sulla password del database non possano perdersi accidentalmente nel web.
Idealmente, dovresti inserirlo in un file di configurazione, che può essere qualcosa di semplice come un array PHP.
Ad esempio: db_config.php
$db_config = array(
'host' => 'localhost',
'user' => 'username',
'password' => 'qwerty'
);
Si dovrebbe quindi inserire questo file fuori della vostra document root per la massima sicurezza. In questo modo, se il tuo webhost fallisce e inizia a servire file PHP come file di testo (succede), nessuno può ottenere le tue credenziali di DB.
Ciao grazie per la risposta. Sarebbe implementato come globalmente o ci sarebbe qualcos'altro. –
@DaryllSantos Dovresti includere il file come e quando ne hai bisogno. – xbonez
Ci sono un sacco di modi di farlo, ma lo faccio in questo modo da costanti che definiscono:
Create a config/db.php
<?php
define('DB_INFO','mysql:host=localhost;dbname=test');
define('DB_USER','root');
define('DB_PASS','');
per PostgreSQL, mi piace molto usare pg_service.conf
. Mi consente di inserire tutte le impostazioni specifiche della connessione (nome host, nome del database, nome utente, password, ecc.) In ~/.pg_service.conf
o allo /etc/postgresql-common/pg_service.conf
e dare loro il nome comune (nome del servizio).
Ora, qualsiasi programma (Perl, PHP, ecc.) Che desideri connettere al database può semplicemente specificare "service=name"
come stringa di connessione - bello, pulito, sicuro e facilmente mantenibile.
Per quanto ne so, MySQL ha un meccanismo simile per i file ~/my.cnf
o /etc/my.cnf
- potresti volerlo esaminare.
Dipende dalla tua implementazione ... Puoi mettere su un file di impostazioni in modo da poter personalizzare quando vuoi. oppure se ami OOP puoi usare anche la classe .. ma probabilmente hai usato il file delle impostazioni. – Pratik
Di solito lo inserisco in un file al di fuori della web root, quindi lo includo in qualsiasi applicazione in cui mi serve. Ciò rende un po 'più sicuro l'esposizione accidentale al web e consente alle applicazioni multiple di utilizzare le stesse impostazioni dove cambiando quel file manterrai tutte le impostazioni db delle app aggiornate. –