2015-08-25 57 views
3

我在node.js中使用mysql。事情是這樣的:Node.js中的硬編碼mysql用戶和密碼

var mysql  = require('mysql'); 
    var connection = mysql.createConnection({ 
     host  : 'localhost', 
     user  : 'me', 
     password : 'secret', 
     database : 'my_db' 
    }); 

    connection.connect(); 

我只是想知道如果有服務器硬編碼的數據庫憑據(用戶名和密碼)不會危及安全。 如果是這樣,更好的方法是什麼?

回答

2

處理此問題的最佳方法是將您的憑據存儲在環境變量中。然後,您可以訪問您的憑據是這樣的:

var mysql  = require('mysql'); 
var connection = mysql.createConnection({ 
    host  : process.env.DB_HOST, 
    user  : process.env.DB_USER, 
    password : process.env.DB_PASS, 
    database : process.env.DB_NAME 
}); 

connection.connect(); 

那麼你可以使用一個像庫向dotenv設置環境變量。您可以將您的環境變量放入未與應用程序一起分發的.env文件中,但這不在版本控制中。一個例子.ENV可能看起來像這樣

DB_NAME=my_db 
DB_HOST=localhost 
DB_PASS=secret 
DB_USER=me 

https://www.npmjs.com/package/dotenv - 看到使用dotenv此鏈接以獲取更多信息,並做應用12因數安全一些研究:)

+0

聽起來不錯。它當然有助於便攜性!感謝您的幫助。 – gfields