È sicuro memorizzare la password del database in un file PHP?

26

Il mio connection.php file memorizza le credenziali per connettersi al database:

<?php 
    $objConnect = mysql_connect("localhost","username","password"); 
    mysql_select_db("selectDB", $objConnect);
?>

Quando una pagina deve connettersi al database, uso solo <?php include("connection.php"); ?> .

Questo è sicuro? Gli hacker possono rubare le mie credenziali da quel file?

    
posta OammieR 01.04.2012 - 17:52
fonte

3 risposte

32

La mia raccomandazione: Non memorizzare le password nel codice sorgente.

Invece, memorizzali in un file di configurazione (al di fuori della web root) e assicurati che il file di configurazione non sia accessibile al pubblico. Il motivo è che normalmente non si desidera mantenere le password controllate nel repository del codice sorgente o esposte a chiunque possa visualizzare i file nella propria web root.

C'è un ulteriore rischio con l'archiviazione delle password in un file .php all'interno del webroot, che è un po 'oscuro ma può essere facilmente evitato posizionando il file all'esterno della tua web root. Considera che se stai modificando connection.php usando un editor di testo e la tua connessione cade mentre la stai modificando, il tuo editor salverà automaticamente una copia del file connection.php in qualche file di backup: ad es. connection.php~ (nel stessa directory). Ora il file di backup ha un'estensione diversa, quindi se qualcuno cerca di recuperare quel file, il server Apache servirà felicemente una copia del file in chiaro, rivelando la password del database. Vedi l'1% dei siti con CMS espone le loro password di database per i dettagli.

Vedi anche In che modo i progetti open source gestiscono artefatti sicuri? , Open Source e come funziona per progetti sicuri?

    
risposta data 02.04.2012 - 03:27
fonte
11

È ragionevolmente sicuro. Per ottenere il contenuto del file php, un hacker deve compromettere il tuo server o devi configurarlo male.

Ti consiglio comunque di configurare mysql in modo che l'utente utilizzato dallo script non sia accessibile in remoto e utilizzare un altro utente per l'accesso remoto amministrativo.

    
risposta data 01.04.2012 - 18:02
fonte
5

Il problema si presenta se hai uno script PHP che probabilmente scarica i file sul tuo server, per esempio download.php?=index.php .

Se controlli Google, noterai che questa vulnerabilità esiste in molti altri siti.

    
risposta data 01.04.2012 - 20:59
fonte

Leggi altre domande sui tag