趣味でDjangoアプリを立ち上げてみて、GithubにプッシュするとGitGuardianからこんなメールが!
GitGuardian has detected the following Django Secret Key exposed within your GitHub account.
「DjangoのSECRET KEYが漏洩してますよ」と。初めてだったのでめちゃくちゃビビりました。。。(コミットの差分でも検知されます)
対処法
調べてみると、以下の2つの方法が濃厚そうでした。
- 環境変数に格納する
- local_setting.pyというファイルで対応する
海外記事では環境変数で対応する方法が多かったので、今回は環境変数で対応することにしました。
まずは環境変数のライブラリをインストール
有名どころだと、django-environ や python-dotenv ですね。
今回はdjangoに最適化されているだろうという理由で、 django-environ を使用することにしました。
※dockerを使用している場合のインストール方法はこちらの記事で説明してます。
django-environでの変更内容
書き換えたところは以下です。
.gitignoreに.envを追加するのを忘れないようにしてください。
settings.py
import environ
import os
env = environ.Env(
DEBUG=(bool, False)
)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
environ.Env.read_env(os.path.join(BASE_DIR, '.env'))
SECRET_KEY = env('SECRET_KEY')
DEBUG = env('DEBUG')
.env
SECRET_KEY=XXXXXXXXXXXXXXXXXXXXXXX
DEBUG=True