2017-01-12 3 views
1

Я следующий код в файле с именем knexfile.jsNode.js knex - Закрепление пароль, используемый для входа в базу данных

module.exports = { 
    development: { 
     client: 'mysql', 
     connection: { 
      database: 'myDatabase', 
      timezone: 'Z', 
      user: 'root', 
      password: 'myPassword', 
      host: '127.0.0.1' 
     }, 
     pool: { 
      min: 2, 
      max: 10 
     }, 
     migrations: { 
      tableName: 'myMigrationTable' 
     } 
    } 
}; 

MyPassword сверху код находится в незашифрованном виде. На моем рабочем сервере я определенно не хочу, чтобы мой пароль был открытым текстом в моем коде, который мое приложение использует для аутентификации с моей базой данных. Я также не хотел бы, чтобы он лежал в файле в открытом тексте на моем сервере.

Есть ли способ в knex или node легко управлять безопасным входом в мою базу данных? Должен ли я просто зашифровать свой пароль, оставить его в файле на моем сервере и расшифровать его, используя мой webapp, когда он войдет в систему?

+0

Вы не расшифровываете его. Вы используете одностороннюю хеширующую функцию. – Dev

+0

Я думал, что mysql снова будет хэш-пароль моего пароля, когда он его получит, а затем сравните этот новый хэш с тем, что он сохранил в своей базе данных, что, следовательно, даст ошибку аутентификации? –

+0

Я не понимаю mysql или knex, но вам нужно сделать хэш-вход пользователя и сравнить его с паролем в базе данных. Для этого существуют такие алгоритмы, как bcrypt, и я рекомендую также соление. – Dev

ответ

2

Лучшей практикой будет использование переменной окружения.

knex = require('knex')({ 
    client: 'mysql', 
    connection: process.env.DATABASE_URL 
}) 
+0

Чтобы пользователи знали, как может выглядеть URL-адрес соединения (как значение переменной среды): mysql: // имя пользователя: пароль @ имя_хоста: порт/база данных –

+0

Это просто перемещает проблему в другом месте. Откуда будет переменная окружения? – Thomas

+0

При запуске контейнер загрузит env var из configmap или secret –

Смежные вопросы