Sichere Klartextpasswörter in der Konfiguration

8

In Webanwendungen müssen Sie Passwörter speichern, die zum Beispiel für die Verbindung mit einer Datenbank verwendet werden. Dies geschieht meist in einer Konfigurationsdatei im Klartext.

Ich habe versucht, das sicherer zu machen, und habe Jasypt (www.jasypt.org) gesehen, das es ermöglicht, diese Passwörter zu verschlüsseln. Aber Sie brauchen immer noch einen Schlüssel, um diese zu entschlüsseln, was das Problem nur verschiebt. Dann habe ich diesen Schlüssel in eine Systemumgebungsvariable verschoben, so dass er zumindest außerhalb der Anwendung ist. Aber ich denke immer noch, dass sich das nicht wirklich ändert?

Wie lösen andere Leute dieses Problem?

    
Nathan Q 01.08.2014, 07:15
quelle

4 Antworten

4

Speichern Sie Produktionskennwörter nicht in einer Konfigurationsdatei in Ihrem Quellcode.

Dies würde jede Person mit Zugriff auf den Code de facto zu einem Administrator machen. Umgebungsvariablen, die auf dem Produktionsserver eingestellt sind, sind ein guter Weg. Sie können die App von dort abrufen lassen und unterschiedliche Werte für verschiedene Umgebungen haben (dev, test, live). Dies ermöglicht Sysadmin beispielsweise, die Produktionskennwörter zu kennen (sie haben sowieso Zugriff, es sind ihre Aufträge), ohne dass die Entwickler sie kennen müssen.

Funktioniert ziemlich gut in meiner Erfahrung.

    
Martin 01.08.2014, 07:35
quelle
2

Sie müssen sich die Frage stellen: Von wem möchte ich das Passwort schützen?

Wie @Martin bereits gesagt hat, wird der Systemadministrator immer Zugriff haben, und er sollte als derjenige das System pflegen. Sie können nichts vor dem Admin eines Servers verstecken.

Also würde ich mit Konfigurationsdateien gehen. Derjenige, der die Datenbank für Ihre Anwendung erstellt, konfiguriert auch ein Kennwort (und einen Benutzernamen) für die Datenbank in der Konfigurationsdatei.

Stellen Sie nur sicher, dass nicht jeder die Konfigurationsdatei lesen kann, so dass nur privilegierte Benutzer die Datei lesen können, das ist das Beste, was Sie tun können.

    
Ortwin Angermeier 01.08.2014 10:11
quelle
2

Verwenden Sie NOT Befehlszeilenargumente, um Kennwörter an Ihre Anwendung zu übergeben, da die Befehlszeilenargumente möglicherweise auch für Nicht-Administrator Benutzer sichtbar sind (abhängig vom Betriebssystem). Wenn ein anderer Benutzer Prozesslisten verwenden darf (z. B. ps, Taskmanager, ProcessManager), können die Argumente dort erscheinen.

    
mschenk74 01.08.2014 12:54
quelle
1

Stimme Martin zu. Passwörter in Umgebungsvariablen zu speichern ist der beste Weg, sie vor neugierigen Blicken zu schützen.

Diese Methode wurde in Ruby on Rails-Anwendungen standardmäßig verwendet, wie Sie auf dem folgenden Link sehen können:

Ссылка

    
kreizlie 01.08.2014 08:46
quelle

Tags und Links