Обеспечение безопасности ключей API и доступа к базе данных
Как лучше хранить ключи API и данные доступа к базе данных в безопасности?
Мы будем развертывать с Nodejitsus jitsu deploy
поэтому я думаю, что есть файл конфигурации, который не будет частью git.
Наш текущий конфигурационный файл, который у меня будет.gitignore'd
module.exports = (app) ->
app.configure 'development', ->
global.config =
dbUrl: 'mongodb://username:password@host:port/closet'
foursquare:
client_id: 'xxx'
client_secret: 'xxx'
redirect_uri: 'http://127.0.0.1:3000/account/auth/foursquare/done'
return
app.configure 'production', ->
global.config =
dbUrl: 'mongodb://username:password@host:port/closet'
foursquare:
client_id: 'yyy'
client_secret: 'yyy'
redirect_uri: 'http://example.com/account/auth/foursquare/done'
return
return
2 ответа
Обычно я сохраняю свою конфигурацию в config.json
добавь его в мой .gitignore
, а затем включить .npmignore
так что npm не использует .gitignore
решить, что связывать. Таким образом, git не добавляет config.json, но jitsu связывает его при развертывании.
Переменные env, как подсказывает booyaa, также будут работать.
Вы можете хранить ключи API (и другие секреты) как переменные среды, используя jitsu env
команда. Затем используйте process.env, чтобы получить эти переменные в вашем приложении node.js.