문제점

github의 repositories 업로드 시의 SECRET_KEY 노출문제

django 보안 기능이 상실될 수 있기 때문에

이렇게 github에서 GitGuardian을 통해 메일로 알려준다!

해결방법

첫 번째는 프로젝트를 시작 할 때 미리 SECRET_KEY를 숨기는 법이고,
두 번째는 이미 SECRET_KEY가 노출되었을 때 재발급을 통해 기존 노출되었던 SECRET_KEY를 무효화 하는 방법이다.

프로젝트 시작 시

  1. dotenv 설치
pip install django-dotenv
  1. .env 파일 만들기

.gitignore와 같은 위치에 .env 파일을 직접 만들어 주면 된다.

  1. settings.py
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")

이렇게 바꿔주기.

  1. .env

잘라낸 SERET_KEY 값을 .env 파일에 다음과 같은 형태로 넣어준다.

.env

SECRET_KEY = 'django-insecure-qzf=snt6-ca3psj*eb48u2b=&4^d1s2n-x00q3-n-67=m#'
  1. manage.py

다음으로 manage.py에서

import dotenv

를 추가해 주고

manage.py

...
if __name__ == '__main__':
    main()
...

이 부분을

if __name__ == '__main__':
    dotenv.read_dotenv()
    main()

이렇게 수정하면

  1. .gitignore에 .env추가
.gitignore

...
.env
...

해주면 끝!

이미 SECRET_KEY가 노출 되었을 시 재발급 받기

python -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())"

터미널에 위 명령어를 그대로 치면 새로운 SECRET_KEY가 발급된다. 이후 위 과정을 진행하면서 [4. .env] 단계에서 새로운 SECRET_KEY 값을 입력하면 끝!

참고로 재발급하면 좀 이상하게 생겼지만 문제 없으니 그대로 복붙!

profile
가보자고

0개의 댓글

관련 채용 정보