우기의 알 블로그 저자 한승욱이라고 합니다.
스스로 알을 깨고 나오는 새처럼
언젠가 알을 깨고 온전한 나 자신이 되었을 때, 그때를 기다리며 제 속에서 솟아 나오는 것을 글로써 표현하고자 합니다.
'개발 기술블로그'를 위주로 저 한승욱의 다양한 관심사, 생각, 철학 등을 포스팅합니다.
import os # 상단에 os를 추가해준다.
SECRET_KEY = os.environ["AIRBNB_SECRET_KEY"] # 시크릿키 부분을 환경변수에서 받아올 수 있게 설정
혹시나 환경변수를 인식하지 못하거나 존재하지 않을시에 대한 예외처리를 구성해줄 수도 있다
# settings.py
import os
from django.core.exceptions import ImproperlyConfigured
def get_env_variable(var_name):
try:
return os.environ[var_name]
except KeyError:
error_msg = "Set the {} environment variable".format(var_name)
raise ImproperlyConfigured(error_msg)
SECRET_KEY = get_env_variable("AIRBNB_SECRET_KEY")
동작 확인
❯ python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
January 01, 2021 - 05:34:23
Django version 2.2.5, using settings 'config.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Django, git push 전 seceret_key 세팅
아마 노마드 쌤의 django 에어비앤비 클론 강의를 보낸때에는 이 내용을 알려주지는 않았던 것 같다.
(후반에 알려줄 수도 있지만 후반까지 안 보았기에...)
당장 클론 코딩을 하거나 토이 플젝을 할때는 크게 문제가 안되겠지만, 항상 이러한 부분은 습관을 들여야 한다고 생각한다.
해당 시크릿 키는 '보안 기능'과 관련이 있다.
이게 유출된다면 '유저의 패스워드'를 복호화하는 '해시 함수'가 유출되는 것이기에, 보안적으로 문제가 될 소지가 있다.
장고의 settings.py에 들어가면
해당 따옴표 안에 50자의 랜덤 문자로 구성된 비밀키가 들어가있을 것이다.
해당 키는 절대로 외부로 공개되어서는 안된다.
시크릿키는 위의 부문에서 사용된다. 그렇기에 비밀키가 노출되면 보안 부분이 취약해질 수 있다.
물론 이와같이 개인 클론코딩이나 토이 프로젝트같은 경우에는 전혀 문제될 것이 없지만 미리 알아두자는 취지에서 작성한다.
시크릿키를 분리하는 방법은 여러가지가 있겠지만 본인은 여기서 '환경변수패턴'을 이용하고자 한다.
vim 에서 입력할때는 해당 위치에서 i를 누르면 되고 나갈때는 esc를 누른후 :wq를 누르면 된다.
혹시나 환경변수를 인식하지 못하거나 존재하지 않을시에 대한 예외처리를 구성해줄 수도 있다
정상적으로 동작하는 것을 확인할 수 있다.
'기술개발 > Django' 카테고리의 다른 글