Wo speichern Sie Datenbankkennwörter?

8

Wie können Sie die Datenbank und andere Service-Passwörter aus Ihrem Code entfernen? Ich habe gelesen über die Verwendung pro Server-Eigenschaften-Dateien, aber wenn Sie eine große Anzahl von Servern haben, wird es schwer zu pflegen. Ich habe auch eine Lösung gesehen, die den CI-Build-Prozess verwendet, um Passwörter zu "injizieren", aber das macht es schwierig, das Passwort im laufenden Betrieb zu aktualisieren.

Einige Voraussetzungen, um das Feld der Antworten einzuschränken ...

  1. Das Passwort sollte im Falle einer Sicherheitsverletzung einfach zu ändern und zu verbreiten sein.
  2. Das Passwort kann nicht im Code erscheinen (wegen Punkt 1)
  3. Es sollte "nicht trivial" sein, dass ein Mensch eine unverschlüsselte Version des Passworts erhält
  4. Sollte in der Webanwendung und in eigenständigen Anwendungen funktionieren
  5. Vom Standpunkt des Anwendungsentwicklers aus einfach zu übernehmen

Einige nützliche Dinge beinhalten nicht einen einzigen Fehlerpunkt, eine schnelle Entwicklungszeit und sind einfach zu verstehen.

Dies ist ähnlich wie diese Frage , aber mit einer starken Betonung auf Wartbarkeit und konzentriert sich mehr auf die Server-Seite.

    
Andrew White 03.02.2011, 22:19
quelle

3 Antworten

6

Sie können es in Klartext in einer Datei in einem geschützten Verzeichnis speichern, das nur von dem Konto gelesen werden kann, in dem die Anwendung ausgeführt wird. Im Falle einer Web-Anwendung sollten Sie das Passwort immer außerhalb des Web-Stammordners speichern.

    
GolezTrol 03.02.2011, 22:25
quelle
1

Wenn Sie einen Datenbankverbindungspool verwenden, werden der Benutzername, das Kennwort und andere Datenbankdetails in der Regel im Java Web Container verwaltet und dem Java-Code als Datenquelle angezeigt. Sie fragen einfach nach einer Datenbankverbindung, ohne dass Sie diese Details kennen müssen.

    
trojanfoe 03.02.2011 22:27
quelle
0

Wie wäre es mit der Verschlüsselung, abgesehen davon, dass Sie sie in einer Textdatei außerhalb des Web-Stammverzeichnisses speichern? Bei den meisten Sprachen ist es ziemlich trivial, eine Verschlüsselungsmethode zu verwenden. Obwohl dies nicht unbedingt notwendig ist, um vor Angriffen aus dem Internet zu schützen, wird es für andere Personen schwieriger, Zugriff auf die Datei auf Ihrem System zu erhalten. Ein bisschen Verschleierung, die Datei als etwas anderes mit einem langweiligen Namen zu tarnen, der wahrscheinlich übersehen wird, macht es weniger wahrscheinlich, dass jemand sie finden wird, selbst wenn sie physischen Zugriff auf den Server haben.

    
David Peterson Harvey 10.07.2013 05:42
quelle