安全 HTTP 基本身份验证
Secure HTTP basic auth
我正在连接到几个 API 并使用基本身份验证,如下所示:
this.jenkins = jenkinsapi.init('https://USERNAME:PASSWORD@this-is-a-jenkins.server.local:8080', {strictSSL: false});
我担心用户密码只是以变量或纯文本的形式存在。它位于 'private' 方法中,但如果任何人能够查看服务器上的源代码,他们将能够查看用户名和密码。
如何在仍然使用 http 基本身份验证的同时使它更安全?
看看环境变量。 These are available in Node.js.
process.env.ENV_VARIABLE
其中 ENV_VARIABLE
是在您的系统 运行 应用程序中定义的内容。例如,在我的 Node.js 应用程序 运行ning 在 Heroku 上,并在 Github 上公开托管,我使用 process.env.MONGOLAB_URI
而不是 SQL 类型的字符串包含数据库名称、用户名和密码。由于 Heroku,我已经自动配置了这个,但我也可以在我的 OS 中本地设置变量(在本例中为 Windows),这样代码将 运行 在本地,如嗯。
另请查看 this answer 关于在 Jenkins 中使用环境变量的信息。
我正在连接到几个 API 并使用基本身份验证,如下所示:
this.jenkins = jenkinsapi.init('https://USERNAME:PASSWORD@this-is-a-jenkins.server.local:8080', {strictSSL: false});
我担心用户密码只是以变量或纯文本的形式存在。它位于 'private' 方法中,但如果任何人能够查看服务器上的源代码,他们将能够查看用户名和密码。
如何在仍然使用 http 基本身份验证的同时使它更安全?
看看环境变量。 These are available in Node.js.
process.env.ENV_VARIABLE
其中 ENV_VARIABLE
是在您的系统 运行 应用程序中定义的内容。例如,在我的 Node.js 应用程序 运行ning 在 Heroku 上,并在 Github 上公开托管,我使用 process.env.MONGOLAB_URI
而不是 SQL 类型的字符串包含数据库名称、用户名和密码。由于 Heroku,我已经自动配置了这个,但我也可以在我的 OS 中本地设置变量(在本例中为 Windows),这样代码将 运行 在本地,如嗯。
另请查看 this answer 关于在 Jenkins 中使用环境变量的信息。