본문 바로가기
컴퓨터 활용/노년에 즐기는 코딩

[Django] 장고 프로젝트에서 SECRET_KEY란?

by easyfly 2025. 5. 2.
반응형

장고 프로젝트에서 SECRET_KEY

SECRET_KEY는 Django 프로젝트의 핵심 보안 요소로, 아래와 같은 역할을 합니다.


🔐 SECRET_KEY란?

Django의 SECRET_KEY는 웹 애플리케이션의 보안을 위해 사용되는 암호화 키입니다. 특히 다음과 같은 기능에 필수적입니다:

✔️ 주요 역할

  1. 세션 쿠키 암호화
    • 클라이언트와 서버 간의 로그인 상태 유지 등에 사용되는 세션 데이터를 안전하게 암호화합니다.
  2. 비밀번호 리셋 토큰 생성
    • 비밀번호 변경 메일 등을 위한 보안 토큰을 생성할 때 사용됩니다.
  3. CSRF (Cross Site Request Forgery) 토큰 서명
    • 사이트 간 요청 위조 공격을 방지하는 데 사용되는 보안 토큰 생성에 필요합니다.
  4. 암호화 및 해싱 함수의 내부 시드
    • 내부적으로 해싱된 값을 비교할 때 보안을 강화하기 위해 사용됩니다.

⚠️ 주의사항

  • 절대 GitHub에 올려서는 안 됩니다.
  • 프로덕션(운영) 환경에서는 매번 고유한 값으로 설정해야 합니다.
  • 키가 외부에 유출되면, 세션 탈취, CSRF 위조 등 보안에 심각한 문제가 발생할 수 있습니다.

✅ 안전하게 관리하는 방법

예: .env 파일 사용

.env 파일에 저장:

DJANGO_SECRET_KEY=django-insecure-9x!v&8r@z^$%abc1234567890

settings.py에서 불러오기:

from decouple import config

SECRET_KEY = config('DJANGO_SECRET_KEY')

.gitignore에는 .env 포함:

.env

🔧 키 생성 팁

키가 없다면 다음 명령으로 새 SECRET_KEY를 만들 수 있습니다:

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

 

반응형

댓글