Обеспечение безопасности ключей 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.

Другие вопросы по тегам