Ist es sicher, Passwörter als Umgebungsvariablen (anstatt als einfacher Text) in Konfigurationsdateien zu speichern?
Arbeite ich an ein paar apps in rails, django (und ein bisschen php), und eines der Dinge, die ich begonnen, in einigen von Ihnen ist die Speicherung von Datenbank und andere Kennwörter als Umgebungsvariablen lieber als nur-text in bestimmten config Dateien (oder in settings.py für django apps).
In Rücksprache mit einem meiner Mitarbeiter, er schlug vor, dies ist eine schlechte Praxis, die vielleicht nicht so absolut sicher, wie es vielleicht auf den ersten Blick.
So, ich würde gerne wissen - ist das ein Sicheres Verfahren? Ist es mehr sicher zu speichern Passwörter als plain text in diesen Dateien (sicherstellen, dass, natürlich, nicht zu verlassen, diese Dateien in öffentliche repos oder irgendetwas)?
InformationsquelleAutor der Frage jay | 2012-09-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Auf einer mehr theoretischen Ebene, ich Neige dazu zu denken Ebenen, die für die Sicherheit der folgenden Möglichkeiten (in der Reihenfolge Zunehmender Stärke) :
Umgebungsvariablen sind mehr sicherer als Klartext-Dateien, weil Sie flüchtig sind und/Einweg -, nicht gespeichert;
d.h. wenn Sie nur eine lokale variable, wie "set pwd=egal", und dann das Skript ausführen
mit etwas, das beendet Ihre Befehls-shell auf das Ende des Skripts, dann ist die variable nicht mehr existiert.
Ihr Fall fällt in die ersten beiden, die ich würde sagen ist ziemlich unsicher. Wenn Sie im Begriff waren, dies zu tun, würde ich nicht empfehlen, das bereitstellen außerhalb Ihres unmittelbaren intranet - /home-Netzwerk, und dann auch nur für Testzwecke.
InformationsquelleAutor der Antwort John Carter
Wie bereits erwähnt, beide Methoden bieten keine Schicht zusätzliche "Sicherheit", sobald das system kompromittiert ist. Ich glaube, dass einer der stärksten Gründe zu Gunsten der Umgebungsvariablen ist die Versionskontrolle: ich habe gesehen, zu viele Datenbank-Konfigurationen etc. wird versehentlich gespeichert im version-control-Systems wie GIT für alle anderen Entwickler, um zu sehen (und schwupp! es passiert mir als auch ...).
Nicht das speichern Ihrer Kennwörter in Dateien, macht es unmöglich für Sie zu sein gespeichert im version-control-system.
InformationsquelleAutor der Antwort emrass
Jederzeit, wenn Sie haben, ein Passwort zu speichern, ist es unsicher. Zeitraum. Es gibt keine Möglichkeit zum speichern einer un-verschlüsselten Kennwort fest. Nun, welche environment-Variablen vs. config-Dateien ist mehr "sicher" ist vielleicht fraglich. IMHO, wenn dein system kompromittiert ist, ist es eigentlich egal, wo es gespeichert ist, ein fleißiger hacker können es aufzuspüren.
InformationsquelleAutor der Antwort Chris Pratt
Sorry ich hatte nicht genug rep Kommentar, aber ich wollte auch noch hinzufügen, dass wenn Sie nicht vorsichtig sind, Ihre shell könnte, erfassen Sie das Kennwort im Befehl Geschichte. So läuft so etwas wie
$ pwd=mypassword my_prog
manuell ist nicht so vergänglich wie Sie gehofft haben.InformationsquelleAutor der Antwort brianclements