2016-04-26 9 views
2

ich auf ein paar APIs bin verbinden und mit Standardauthentifizierung wie so:Secure HTTP Auth Grund

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

Ich bin besorgt über die nur das Kennwort des Benutzers mit nur dort in einer Variablen oder Text sitzt . Es ist innerhalb einer "privaten" Methode, aber wenn jemand in der Lage ist, die Quelle auf dem Server zu sehen, könnte er den Benutzernamen und das Passwort sehen.

Wie kann ich dies noch sicherer machen, während ich noch http basic auth benutze?

+1

Verwenden Sie Konfigurationsdatei zum Speichern von Benutzername/Passwort, idealerweise eine Datei, die auf dem Server nicht in der Webanwendung oder auf Build geladen wird, so dass auch Entwickler den Benutzernamen/das Passwort der Produktion nicht kennen. – Walfrat

Antwort

1

Werfen Sie einen Blick auf Umgebungsvariablen. These are available in Node.js.

process.env.ENV_VARIABLE 

Wo ENV_VARIABLE ist etwas in Ihrem System definiert die Anwendung ausgeführt wird. In meiner Node.js-Anwendung, die auf Heroku ausgeführt wird und öffentlich auf Github gehostet wird, verwende ich process.env.MONGOLAB_URI anstelle der SQL-Zeichenfolge, die den Datenbanknamen, den Benutzernamen und das Kennwort enthält. Ich habe dies automatisch wegen Heroku konfiguriert, aber ich kann die Variable auch lokal in meinem Betriebssystem (Windows in diesem Fall) setzen, so dass der Code auch lokal ausgeführt wird.

Überprüfen Sie auch this answer über die Verwendung von Umgebungsvariablen mit Jenkins.