IT/앱사용방법

파이썬 코딩 - 쿠키값 관리

볼통통알파카 2022. 8. 6. 22:32
반응형
쿠키값 관리가 중요한 이유

대부분의 쿠키는 PC 메모리에 상주하며, 브라우저 실행이 종료되면 사라진다.

그러나 세션에 관계없이 지속적으로 저장되도록 설정할 수 있으며, 보통 C드라이브에 저장되어 사용된다.

개인정보, 인증 등 쿠키값에 영구 저장된다면 공격자는 쉽게 정보탈취 기회를 갖게 된다.

그래서 쿠키값 세팅을 해주는 방법과 개인이 관리하는게 중요하다.

 

보통 웹 개발 코드 예시

쿠키의 만료시간을 기본값으로 설정한다.
신경쓰지 않거나 테스트를 위해 길게 설정하고 잊고 넘어가는 경우가 있는데 그대로 사용자 하드디스크에 여러가지 정보가 저장되어 있는 쿠키를 공격자가 쉽게 도용될 수 있게 된다.
 
from django.http import HttpResponse    
def remind_user_state(request):
   res = HttpResponse()    
   # 쿠키의 만료시간을 1년으로 과도하게 길게 설정하고 있어 안전하지 않다.
   res.set_cookie('rememberme', 1, max_age=60*60*24*365)    
   return res

항상 max_age값을 최소로 설정하고,

중요 정보가 포함되지 않도록 한다.

HTTPS를 통해서만 전송되도록 sercure 속성값을 TRUE로 사용한다.

 

쿠키 만료시간 설정 웹 개발 코드 예시
from django.http import HttpResponse     
def remind_user_state(request):
    res = HttpResponse()    
    # 쿠키의 만료시간을 적절하게 부여하고 secure 옵션을 활성화 함.
    res.set_cookie('rememberme', 1, max_age=60*60, secure=True, httponly=True)
    return res

 

Django로 개발을 할 때 settings.py에서 아래와 같이 추가하여 사용하면 편리하다.

옵션

SESSION_COOKIE_AGE = 60 * 60 (기본값 2주로 되어 있음)

SESSION_COOKIE_HTTPONLY = True (기본값 True로 되어 있음. False로 될 경우 JavaScript를 통해 쿠키 접근 가능)

SEESION_COOKIE_SECURE = True (기본값 False로 되어 있음. HTTPS를 통해서 쿠키전송)

 

쿠키값 관리에 대한 내용 정리

1. 쿠키값에 아이디, PW가 들어갈 경우 적정 유지시간을 설정한다.

2. 쿠키값 전송이 필요할 경우 HTTPS로 전달되게 설정한다.

3. 스크립트에서 접근하지 못하게 설정한다.

반응형