Das Übergeben von Geheimnissen (Kennwörtern) an ein Programm über eine Umgebungsvariable wird laut MySQL-Dokumenten als "äußerst unsicher" und als schlechte Wahl (unter Sicherheitsaspekten) für andere Ressourcen angesehen .
Ich würde gerne wissen warum - was fehlt mir? Im erwähnten MySQL-Handbuch (ich verwende dies als Beispiel) wird die Übergabe des Kennworts über die -pOption in der Befehlszeile als " unsicher " und über env var als " extrem unsichere ", fett kursive Schrift betrachtet.
Ich bin kein Experte, aber ich kenne die Grundlagen: Ein einfacher psBefehl, der sogar von einem nicht privilegierten Benutzer ausgegeben wird, liest jedes Programm zusammen mit den Befehlsparametern, während nur derselbe Benutzer (und natürlich root) die Umgebung des Prozesses lesen darf. Also, nur rootund johndoedarf die Umgebung des johndoegestarteten Prozesses lesen , während gehacktes www-dataSkript alles über liest ps.
Es muss hier eine große Sache geben, die ich vermisse - also erklären Sie mir bitte, was ich vermisse.
Mein Ziel ist es, das Geheimnis von einem Programm auf ein anderes zu übertragen, im Allgemeinen nicht interaktiv.
ps.
exportin einem Skript und Ihr Passwort befindet sich jetzt im Klartext auf der Festplatte, was ebenfalls eine sehr schlechte Wahl ist.
mysql -ps3cretIhr Kennwort im Klartext in Ihre Shell-Verlaufsdatei eingefügt. Die Verwendung eines Skripts oder eines anderen Mittels zum Einfügen Ihres Kennworts in eine Umgebungsvariable bedeutet, dass sich das Kennwort (oder das Mittel zum Offenlegen des Kennworts) in diesem Skript befindet. Wenn Sie dies tunexport mysqlpasswd=s3cret, wird Ihr Kennwort einfach wieder im Klartext zu Ihrem Shell-Verlauf hinzugefügt.