Ceci est le premier message. Puisque c'est la fin de l'année, quand je pense à ce que j'ai laissé derrière moi cette année, je pense que [Publier sur Qiita] m'est venu à l'esprit, alors je vais l'écrire comme mon propre mémo et sortie. Cette fois, je vais sortir ce que j'ai appris lors du développement d'applications Web avec le framework Python Django, mais l'idée est la même pour d'autres langages et d'autres frameworks, alors essayez-le. Cette fois, j'écrirai sur la façon d'améliorer la confidentialité des informations d'authentification en définissant la valeur des informations d'authentification dans la variable d'environnement et en n'écrivant pas les informations d'authentification directement dans le code source.
Informations d'authentification solides → Étant donné que les informations d'authentification sont intégrées dans le code, il est possible que les informations d'authentification soient divulguées telles quelles lors de leur partage avec d'autres. Il existe également des cas où une instance AWS a été piratée et une grande somme d'argent a été facturée. .. Une histoire sur un débutant qui a fait une erreur sur AWS et a été abusé et facturé 6 000 $, presque en pleurant.
Donc ,,, L'objectif principal de cet article est de ** maintenir la sécurité ** sans écrire solidement les informations d'authentification sur le code source en lisant des variables d'environnement dépendant du système d'exploitation!
--Définir les variables d'environnement
Il existe deux méthodes de réglage -S'enregistrer depuis l'écran [Modifier les variables d'environnement système] ・ Inscription par entrée de commande depuis le terminal
Cette fois, je présenterai la deuxième méthode de paramétrage depuis Terminal. Utilisez la commande ** SETX ** pour définir les variables d'environnement qui peuvent être utilisées en permanence à partir du terminal. Maintenez la touche Ctrl + Maj enfoncée et exécutez l'invite de commande en mode administrateur.
terminal
Valeur du nom de la variable d'environnement SETX#Variables d'environnement utilisateur
SETX /Valeur du nom de la variable d'environnement M#Variables d'environnement système
** Veuillez noter que vous ne pouvez pas lire la variable d'environnement nouvellement définie tant que vous n'avez pas fermé l'EDI une fois après avoir défini la variable d'environnement! ** ← J'étais accro à ça. ..
Vous pouvez obtenir la même valeur avec l'une des notations suivantes, Lors de l'appel d'une variable d'environnement qui n'existe pas, la valeur par défaut "Aucun" est renvoyée pour la première et une erreur est renvoyée pour la seconde.
test.py
import os
os.environ.get('Nom de la variable d'environnement') # 'Nom de la variable d'environnement'Obtenir des variables d'environnement pour
os.environ['Nom de la variable d'environnement'] # 'Nom de la variable d'environnement'Obtenir des variables d'environnement pour
C'est le cas où les informations d'authentification sont solides
setting.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'sample', #Nom de la base de données créée
'USER': 'root', #Nom d'utilisateur connexion,
'PASSWORD':'root', #Nom du mot de passe de connexion,
'HOST': '',
'PORT': '',
}
}
En réécrivant le code source ci-dessus pour le lire à partir des variables d'environnement comme indiqué ci-dessous Je cache mes informations d'identification.
setting.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'sample', #Nom de la base de données créée
'USER': os.environ.get('DB_USERNAME'), #Nom d'utilisateur connexion
'PASSWORD': os.environ.get('DB_PASSWORD'), #Mot de passe
'HOST': os.environ.get('DB_HOST'),
'PORT': os.environ.get('DB_PORT'),
}
}
Étant donné que le premier message et les connaissances sont superficiels, je vous serais reconnaissant de bien vouloir me faire savoir s'il y a des erreurs d'écriture. Merci d'avoir lu jusqu'au bout.
Recommended Posts