github의 repositories 업로드 시의 SECRET_KEY 노출문제
django 보안 기능이 상실될 수 있기 때문에
이렇게 github에서 GitGuardian을 통해 메일로 알려준다!
첫 번째는 프로젝트를 시작 할 때 미리 SECRET_KEY를 숨기는 법이고,
두 번째는 이미 SECRET_KEY가 노출되었을 때 재발급을 통해 기존 노출되었던 SECRET_KEY를 무효화 하는 방법이다.
pip install django-dotenv
.gitignore와 같은 위치에 .env 파일을 직접 만들어 주면 된다.
settings.py
...
import os
...
settings.py에서 os를 import 해주고
settings.py
...
SECRET_KEY = 'django-insecure-qzf=snt6-ca3psj*eb48u2b=&4^d1s2n-x00q3-n-67=m#'
...
SECRET_KEY 값을 잘라내고 (없애면 안되고 복사 해놔야 함!!!)
SECRET_KEY = os.environ.get("SECRET_KEY")
이렇게 바꿔주기.
잘라낸 SERET_KEY 값을 .env 파일에 다음과 같은 형태로 넣어준다.
.env
SECRET_KEY = 'django-insecure-qzf=snt6-ca3psj*eb48u2b=&4^d1s2n-x00q3-n-67=m#'
다음으로 manage.py에서
import dotenv
를 추가해 주고
manage.py
...
if __name__ == '__main__':
main()
...
이 부분을
if __name__ == '__main__':
dotenv.read_dotenv()
main()
이렇게 수정하면
.gitignore
...
.env
...
해주면 끝!
python -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())"
터미널에 위 명령어를 그대로 치면 새로운 SECRET_KEY가 발급된다. 이후 위 과정을 진행하면서 [4. .env] 단계에서 새로운 SECRET_KEY 값을 입력하면 끝!
참고로 재발급하면 좀 이상하게 생겼지만 문제 없으니 그대로 복붙!