python
django - settings.py 기본 보안 설정
by dev-hyunhyun
2025. 2. 25.
import socket
import os
# 현재 호스트네임 가져오기
hostname = socket.gethostname()
if hostname.startswith("ip-"): # AWS EC2 서버일 경우
DEBUG = False
ALLOWED_HOSTS = ["your-domain.com"] # 실제 도메인으로 변경하세요.
# HTTPS 강제 설정
SECURE_SSL_REDIRECT = True # HTTP -> HTTPS 자동 리디렉션
# 쿠키 보안 강화 (HTTPS에서만 동작)
SESSION_COOKIE_SECURE = True # HTTPS 환경에서만 세션 쿠키 허용
SESSION_COOKIE_HTTPONLY = True # JavaScript에서 쿠키 접근 방지
CSRF_COOKIE_HTTPONLY = True # CSRF 쿠키를 HTTP-only로 설정하여 JS 접근 방지
CSRF_COOKIE_SECURE = True # CSRF 쿠키도 HTTPS에서만 전송되도록 설정
# CSRF 보호
CSRF_TRUSTED_ORIGINS = ["https://your-domain.com"] # 실제 도메인으로 변경하세요.
else:
DEBUG = True
ALLOWED_HOSTS = ["127.0.0.1", "localhost"]
# 로컬 개발 환경에서는 HTTPS 강제하지 않음
SECURE_SSL_REDIRECT = False
SESSION_COOKIE_SECURE = False
CSRF_COOKIE_SECURE = False
CSRF_TRUSTED_ORIGINS = ["http://127.0.0.1:8000"]