[PYTHON] [Für Anfänger] Lesen Sie die DB-Authentifizierungsinformationen aus Umgebungsvariablen

Einführung

Dies ist der erste Beitrag. Es ist das Ende des Jahres. Wenn ich also darüber nachdenke, was ich in diesem Jahr zurückgelassen habe, denke ich, dass mir zuerst [Post to Qiita] in den Sinn gekommen ist, also schreibe ich es als mein eigenes Memo und meine eigene Ausgabe. Dieses Mal werde ich das ausgeben, was ich bei der Entwicklung von Webanwendungen mit dem Python-Framework Django gelernt habe, aber die Idee ist für andere Sprachen und andere Frameworks dieselbe. Probieren Sie es also bitte aus. Dieses Mal werde ich darüber schreiben, wie die Vertraulichkeit von Authentifizierungsinformationen verbessert werden kann, indem der Wert von Authentifizierungsinformationen in der Umgebungsvariablen festgelegt wird und die Authentifizierungsinformationen nicht direkt in den Quellcode geschrieben werden.

Was freut mich, wenn ich Authentifizierungsinformationen aus Umgebungsvariablen lese?

Solide Authentifizierungsinformationen → Da die Authentifizierungsinformationen in den Code eingebettet sind, werden die Authentifizierungsinformationen möglicherweise so offengelegt, wie sie sind, wenn sie mit anderen geteilt werden. Es gibt auch Fälle, in denen eine AWS-Instanz entführt und eine große Menge Geld in Rechnung gestellt wurde. .. Eine Geschichte über einen Anfänger, der einen Fehler bei AWS gemacht hat und missbraucht wurde und 6.000 US-Dollar in Rechnung stellte, fast weinend.

Deshalb ,,, Der Hauptzweck dieses Artikels ist es, die Sicherheit aufrechtzuerhalten, ohne Authentifizierungsinformationen durch Lesen aus betriebssystemabhängigen Umgebungsvariablen fest in den Quellcode zu schreiben!

Verfahren

Umgebungsvariablen festlegen

Es gibt zwei Einstellmethoden

Dieses Mal werde ich die zweite Methode zum Einstellen vom Terminal aus vorstellen. Verwenden Sie den Befehl ** SETX **, um Umgebungsvariablen festzulegen, die dauerhaft vom Terminal aus verwendet werden können. Halten Sie Strg + Umschalt gedrückt und führen Sie die Eingabeaufforderung im Administratormodus aus.

terminal


Name des Namens der SETX-Umgebungsvariablen#Benutzerumgebungsvariablen
SETX /M Wert des Namens der Umgebungsvariablen#Systemumgebungsvariablen

** Beachten Sie, dass Sie nach dem Festlegen der Umgebungsvariablen die IDE einmal schließen müssen, bevor Sie die neu festgelegte Umgebungsvariable lesen können! ** ← Ich war süchtig danach. ..

Lesen Sie Anmeldeinformationen aus Umgebungsvariablen

Sie können den gleichen Wert mit einer der folgenden Notationen erhalten: Beim Aufrufen einer nicht vorhandenen Umgebungsvariablen wird für die erstere der Standardwert "Keine" und für die letztere ein Fehler zurückgegeben.

test.py


import os
os.environ.get('Name der Umgebungsvariablen') # 'Name der Umgebungsvariablen'Umgebungsvariablen für abrufen
os.environ['Name der Umgebungsvariablen']   # 'Name der Umgebungsvariablen'Umgebungsvariablen für abrufen

Dies ist der Fall, wenn die Authentifizierungsinformationen solide sind

setting.py


DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'sample', #Datenbankname erstellt
        'USER': 'root', #Login Benutzername,
     'PASSWORD':'root', #Login Passwort Name,
        'HOST': '',
        'PORT': '', 
    }
}

Durch Umschreiben des obigen Quellcodes zum Lesen aus den Umgebungsvariablen wie unten gezeigt Ich verstecke meine Anmeldeinformationen.

setting.py


DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'sample', #Datenbankname erstellt
        'USER': os.environ.get('DB_USERNAME'), #Login Benutzername
        'PASSWORD': os.environ.get('DB_PASSWORD'), #Passwort
        'HOST': os.environ.get('DB_HOST'),
        'PORT': os.environ.get('DB_PORT'),
    }
}

abschließend

Da der erste Beitrag und das Wissen oberflächlich sind, würde ich es begrüßen, wenn Sie mich wissen lassen könnten, wenn es irgendwelche schriftlichen Fehler gibt. Vielen Dank für das Lesen bis zum Ende.

Recommended Posts

[Für Anfänger] Lesen Sie die DB-Authentifizierungsinformationen aus Umgebungsvariablen
Python3-Umgebungskonstruktion (für Anfänger)
[Für Anfänger] Django -Entwicklungsumgebung Bau-
Lesen Sie Systemumgebungsvariablen mit Python-Teil 1
Lesen Sie Systemumgebungsvariablen mit Python-Teil 2
Lesen von Umgebungsvariablen aus einer ENV-Datei mit PyCharm (für Mac)
Programmierumgebung für Anfänger mit Windows
Anfänger lesen "Einführung in TensorFlow 2.0 für Experten"
[Python] Bilder mit OpenCV lesen (für Anfänger)
Suchen Sie nach Pokemon Haunting Information von Twitter
Sammeln von Informationen von Twitter mit Python (Umgebungskonstruktion)
Für Anfänger, um eine Anaconda-Umgebung aufzubauen. (Memo)
Memo Nr. 3, dass Python-Anfänger "Detaillierte Erklärung der Python-Grammatik" lesen
Memo Nr. 1, dass Python-Anfänger "Detaillierte Erklärung der Python-Grammatik" lesen
Memo Nr. 2, dass Python-Anfänger "Detaillierte Erklärung der Python-Grammatik" lesen
Memo Nr. 7, dass Python-Anfänger "Detaillierte Erklärung der Python-Grammatik" lesen
Memo Nr. 6 für Python-Anfänger zum Lesen von "Detaillierte Erklärung der Python-Grammatik"
~ Tipps für Python-Anfänger mit Liebe von Pythonista ② ~
Memo Nr. 5, dass Python-Anfänger "Detaillierte Erklärung der Python-Grammatik" lesen
[Hands-on für Anfänger] Lesen Sie zaggles "Predicting Home Prices" Zeile für Zeile (5. Dummy von kategorialen Variablen)