HTTP 응답은 세션 고정에 취약하지 않아야 합니다.

 

URL 매개변수와 같은 사용자 제공 데이터는 항상 신뢰할 수 없고 오염된 것으로 간주해야 합니다. 오염된 데이터에서 직접 쿠키를 만들면 공격자가 세션 식별자를 알려진 값(Set-Cookie, sessionId )으로 설정하여 공격자가 공격 대상자와 세션을 공유할 수 있습니다. 공격이 성공하면 공격 대상자가 인증할 때 세션 식별자가 재생성되지 않는 경우, 중요한 정보에 무단으로 액세스할 수 있습니다.
일반적으로 이러한 유형의 공격을 예방하는 방법은 허용 목록의 영향을 받을 수 있는 쿠키를 제한하는 것입니다.

규칙을 어긴 코드

from django.http import HttpResponse

def index(request):
    value = request.GET.get("value")
    response = HttpResponse("")
    response["Set-Cookie"] = value  # 규칙을 어긴 코드
    response.set_cookie("sessionid", value)  # 규칙을 어긴 코드
    return response

규칙을 준수한 해결책

from django.http import HttpResponse

def index(request):
    value = request.GET.get("value")
    response = HttpResponse("")
    response["X-Data"] = value
    response.set_cookie("data", value)
    return response

같이보면 좋은 자료

If you like SONARKUBE, don’t forget to give me a star. :star2:

원문으로 바로가기

Star This Project