2016-04-26 238 views
2

我连接到几个API和使用基本身份验证,像这样:安全HTTP基本身份验证

this.jenkins = jenkinsapi.init('https://USERNAME:[email protected]:8080', {strictSSL: false});

我关心的只是有用户的密码只是一个变量或纯文本坐在那里。它在'私人'方法内,但如果有人能够在服务器上查看源代码,他们将能够查看用户名和密码。

如何使这个更安全,同时仍然使用http basic auth?

+1

使用配置文件来存储用户名/密码,理想情况下是一个在服务器中加载的文件,而不是在web应用程序或构建中,所以即使开发人员也不知道生产的用户名/密码。 – Walfrat

回答

1

看看环境变量。 These are available in Node.js

process.env.ENV_VARIABLE 

ENV_VARIABLE是在系统中定义运行的应用程序的东西。对于isntance,在Heroku上运行的Node.js应用程序中,公共托管在Github上,我使用的是process.env.MONGOLAB_URI而不是包含数据库名称,用户名和密码的SQL类型的字符串。由于Heroku,我已经自动配置了这个,但是我也可以在我的操作系统(本例中是Windows)中本地设置变量,以便代码也可以在本地运行。

同时检查出this answer关于在Jenkins中使用环境变量。