2020.10.13_Django Secret Key_정리 노트
어제의 우당탕탕 코드를 친 후에 하나의 메일이 날라옴..
당신의 깃허브 계정에서 다음과 같은 장고 시크릿키가 노출되는 것을 감지했다.
ㄷㄷㄷ... 뭔가 대단한 일인 것 같아서 찾아보니까
뭐 시크릿키에 대한 설명이 어쩌구 저쩌구 나와있고,
경고..문구 쎄하다..
경고 이 값을 비밀로 유지하십시오. 알려진 SECRET_KEY를 사용하여 Django를 실행하면 Django의 많은 보안 보호 기능이 해제되고 권한 에스컬레이션 및 원격 코드 실행 취약성이 발생할 수 있습니다.
헣허헣허 그러니까 보안에 매우매우 취약해진다는 말...이구만 헣헣 이미 깃허브에 올렸는데 헣헣
일단 내 깃허브에는 많은 사람이 다녀가지..않으므로 일단 gitignore에 추가해서 다시 업로드를 하려고 함!
배포 후에도 시크릿키가 변경이 가능다하는 말이 있는데,,, 나는 그냥 일단 원래 만들어진 시크릿키를 숨기는 거 까지 해보겠삼 ㅎㅁㅎ
시크릿키는 50자의 랜덤문자를 장고가 알아서 생성해서 settings.py 에 있단다. 글로 일단 가보겠음.
요기 들어가면 이렇게 SECRET_KEY 가 있음... 헣허헣 우리는 얘를 분리해서 따로 json 파일에 적어주고 gitignore에 해당파일을 등록해야하는 방법으로 해보게쑵니다 껄껄
json은 자바스크립트에서 파생된 거라구 하는데 헣헣 잘 모르지만 쨋든 key 값 value 값을 적어주는 포맷에서 제일 읽기 쉬워서 이번엔 요 파일로 한번 분리를 해보게씀미다.
manage.py 와 같은 위치에 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 해주면 잘되는군 다행이댜..
마지막으로 깃허브로 가서 확인을 해보면,
잘 반영이 된 것을 볼 수 있다!
휴 에러가 없는 날이 없군 오늘 포스팅 끝끝
'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 |
댓글