본문 바로가기
git

2020.10.14_Django Secret Key

by 해맑은 코린이 2020. 10. 14.

 

2020.10.13_Django Secret Key_정리 노트

 

어제의 우당탕탕 코드를 친 후에 하나의 메일이 날라옴..

 

 

당신의 깃허브 계정에서 다음과 같은 장고 시크릿키가 노출되는 것을 감지했다.

 

ㄷㄷㄷ... 뭔가 대단한 일인 것 같아서 찾아보니까

 

 

출처 - 장고 공식 문서

 

뭐 시크릿키에 대한 설명이 어쩌구 저쩌구 나와있고, 

경고..문구 쎄하다..

 

경고 이 값을 비밀로 유지하십시오. 알려진 SECRET_KEY를 사용하여 Django를 실행하면 Django의 많은 보안 보호 기능이 해제되고 권한 에스컬레이션 및 원격 코드 실행 취약성이 발생할 수 있습니다.

 

 

헣허헣허 그러니까 보안에 매우매우 취약해진다는 말...이구만 헣헣 이미 깃허브에 올렸는데 헣헣

일단 내 깃허브에는 많은 사람이 다녀가지..않으므로 일단 gitignore에 추가해서 다시 업로드를 하려고 함! 

배포 후에도 시크릿키가 변경이 가능다하는 말이 있는데,,, 나는 그냥 일단 원래 만들어진 시크릿키를 숨기는 거 까지 해보겠삼 ㅎㅁㅎ 

 

 

 

 

시크릿키는 50자의 랜덤문자를 장고가 알아서 생성해서 settings.py 에 있단다. 글로 일단 가보겠음.

 

 

settings.py

 

요기 들어가면 이렇게 SECRET_KEY 가 있음... 헣허헣 우리는 얘를 분리해서 따로 json 파일에 적어주고 gitignore에 해당파일을 등록해야하는 방법으로 해보게쑵니다 껄껄 

 

json은 자바스크립트에서 파생된 거라구 하는데 헣헣 잘 모르지만 쨋든 key 값 value 값을 적어주는 포맷에서 제일 읽기 쉬워서 이번엔 요 파일로 한번 분리를 해보게씀미다.

 

 

 

 

manage.py 와 같은 위치에 json 파일을 만들어주고, 

 

secrets.json

 

이렇게 SECRET_KEY 를 넣어줌. '' 안에 넣으면 빨간색이 뜨더라 ㅎㅁㅎ.. "" 이렇게 쌍따옴표 꼭 써주기

 

 

그리고 세팅에서 기존 시크릿키를 지워주고 다음과 같은 코드를 추가해서 시크릿키를 읽도록 해줌..!

 

import os, json
from django.core.exceptions import ImproperlyConfigured


secret_file = os.path.join(BASE_DIR, 'secrets.json')

with open(secret_file) as f:
    secrets = json.loads(f.read())

def get_secret(setting, secrets=secrets):

    try:
        return secrets[setting]
    except KeyError:
        error_msg = "Set the {} environment variable".format(setting)
        raise ImproperlyConfigured(error_msg)

SECRET_KEY = get_secret("SECRET_KEY")

 

 

 

 

 

 

저렇게 적어주고 runserver를 돌려서 이렇게 CTRL-BREAK 뜨면 성공!

 

 

 

 

이제 gitignore 파일에 적어주고 이제 수정된 ignore 을 git 에 적용시켜주러 ㄲ

 

 

 

저번 포스팅  에서 시도했던 추적기록을 없애는 명령어 이제 잘됨 휴우.. 그리고 add commit push ㄱ ㄱ

 

 

 

 

 

 

허허허허 또 이 오류가 왜뜨는 걸까..일단 저것도 저번 포스팅에서 겪었던 오류라서 이렇게 적어주고,

 

 

 

ㅎ.... 다음부터 ignore 는 고냥 할 때부터 다 적용해야겠다.. 왜 안되는거지 

 

찾아보니까 원격이랑 로컬 저장소의 동기화가 안되어서 생긴 문제라..그래서

 

 

 

 

git pull --rebase origin master 이라는 명령어를 통해서 해결!

 

 

 

 

그러고 push 해주면 잘되는군 다행이댜..

 

 

마지막으로 깃허브로 가서 확인을 해보면,

 

 

settings.py

 

 

.gitignore

 

 

 

잘 반영이 된 것을 볼 수 있다! 

 

 


 

 

휴 에러가 없는 날이 없군 오늘 포스팅 끝끝

'git' 카테고리의 다른 글

2021.01.21 git fork vs clone  (0) 2021.01.21
2020.10.11_git ignore 생성  (0) 2020.10.12
2020.09.26_git pull request  (0) 2020.09.26
2020.09.13_git_merge  (0) 2020.09.14
2020.08.29_git 레포지토리 생성 및_ 기초  (2) 2020.08.30

댓글